使用html_safe或raw返回数组返回转义的html

时间:2012-11-27 07:49:47

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

我的视图文件中有一个数组。数组中的每个值都包含html。我想通过数组而不是逃避html。但是,每当我运行html_saferaw时,数组都会显示非转义的html。以下是我尝试过的一些失败的方法。

这将使用转义的html ...

返回数组
<%= @posts.each { |x| puts raw(x) } %>

这将返回数组中的每个值为nil ...

<%= @posts.map { |x| puts raw(x) } %>

最后,inspect返回带有转义html的数组......

<%= @posts.inspect { |x| puts x.html_safe } %>

这也返回nil ......

<%= @posts.map { |x| puts x.html_safe } %>

造成这种情况的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:5)

您的问题出在每个示例开头的<%= - 这将输出表达式的结果,即@posts本身。

将其替换为<%,看看你如何去。

编辑:第一个例子是我将使用的例子,每个例子都是原始的。

再次编辑:在视图中看起来不常见 - 尝试类似以下内容:

<% @posts.each do |post| %>
  <%= post %>
<% end %>