ruby-on-rails Rails:分隔符中带有html的array.join被转义

t8e9dugd  于 2023-02-06  发布在  Ruby
关注(0)|答案(4)|浏览(159)

我有一个包含未保存内容(用户输入)的字符串数组。
我想在模板中加入这些字符串,用<br />分隔。
我试过:

somearray.join("<br />")

但这也将逃脱sparator。
是否有一个变通方法,记住数组的内容绝对必须转义?

axkjgtzd

axkjgtzd1#

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

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

更好的是,Rails3.1为此引入了safe_join(array, sep),与html_safe一起使用,它可以做你需要做的事情。

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

文件

irlmq6kh

irlmq6kh2#

为什么它必须是一个<br />标记?你能用一个列表代替吗?

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

mklgxw1f3#

你试过这个吗?

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

zu0ti5jz4#

如今,解决这一问题的最先进方法是:

# Inside a view:
safe_join(somearray, '<br />')

# From somewhere else, given the current controller:
controller.helpers.safe_join(somearray, '<br />')

相关问题