如何在Ruby on Rails中转义数组内的HTML实体?

时间:2013-09-17 21:07:28

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试使用数组中的选项填充选择框并转义这些选项,以便显示货币符号lile 而不是€

如何在Ruby on Rails中完成?

这是我的功能:

def options
  array = []
  array << ["&dollar;", "some value"]
  array << ["&euro;", "some value"]
end

这就是形式:

<%= f.select(:format, f.object.options) %>

我试过像array.html_safe这样的东西,但不幸的是它没有用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

您无法将数组HTML标记为安全。您需要将数组中的每个元素标记为HTML-safe。

尝试

array.map(&:html_safe)

<强>更新

抱歉,我没有仔细研究如何构建阵列。我以为它是一个扁平的字符串数组,在这种情况下array.map(&:html_safe)就可以了。相反,您必须对每个 sub - 字符串阵列执行相同的操作:

array.map { |e| e.map(&:html_safe) }

答案 1 :(得分:0)

您可以使用实际符号制作options数组,rails helper将为您编写html代码。

def options
  array = []
  array << ["$", "some value"]
  array << ["€", "some value"]
end