Rails:在分隔符中带有html的array.join被转义

时间:2012-03-06 12:55:18

标签: ruby-on-rails html-escape

我有一个包含未保存内容(用户输入)的字符串数组。

我想在我的模板中加入这些字符串,以<br />分隔。

我试过了:

somearray.join("<br />")

但这也会逃离主持人。

是否有解决方法,请记住数组的内容绝对必须转义?

3 个答案:

答案 0 :(得分:3)

它是否必须是<br />标签?你能用一个清单吗?

<ul>
  <% somearray.each do |item| %>
    <%= content_tag :li, item %>
  <% end %>
</ul>

答案 1 :(得分:2)

你试过这个吗?

raw somearray.join("<br />")

答案 2 :(得分:1)

rawh提供了有选择地应用此默认行为的方法。

<%= raw user_values_array.map {|user_value| h user_value }.join('<br />') %>

更好的是,Rails 3.1为此目的引入了safe_join(array, sep)。与html_safe一起使用,它可以满足您的需求。

<%= safe_join(user_values_array, "<br />".html_safe) %>

Documentation