HTML 和 Ruby on Rails - 将 <br/> 标记显示为换行符,但将其他标记显示为字符串

Elo*_*son 3 html ruby ruby-on-rails line-breaks

我正在开发我的第一个 Rails 网站,但有一个小问题:我想将 <br/> 标签显示为换行符,但我也想将其他标签显示为字符串。

例如,用户输入是:

<a href='#2'>转到#2</a><br/><a href='#3'>转到#3</a>

我想显示:

<a href='#2'>转到#2</a> 
<a href='#3'>转到#3</a>

我知道我可以将 <br/> 标签显示为换行符,如下所示:

<%= simple_format @user_input %>

但问题是这个命令显示:

转到#2
转到#3

并不是:

<a href='#2'>转到#2</a> 
<a href='#3'>转到#3</a>

先感谢您!

Ste*_*rey 6

使用 Rails 清理帮助器方法,将您想要允许的标签列入白名单,并忽略那些您不允许的标签。所有遗漏的内容都将被删除并显示为文本。所以在你的情况下它会是这样的

<%= sanitize @user_input, tags: %w(br) %>
Run Code Online (Sandbox Code Playgroud)

有关清理方法 api 信息,请参阅http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize。