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

jas*_*328 0 ruby arrays ruby-on-rails ruby-on-rails-3

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

这将返回带有转义html的数组...

<%= @posts.each { |x| puts raw(x) } %>
Run Code Online (Sandbox Code Playgroud)

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

<%= @posts.map { |x| puts raw(x) } %>
Run Code Online (Sandbox Code Playgroud)

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

<%= @posts.inspect { |x| puts x.html_safe } %>
Run Code Online (Sandbox Code Playgroud)

这也返回nil ...

<%= @posts.map { |x| puts x.html_safe } %>
Run Code Online (Sandbox Code Playgroud)

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

sev*_*cat 5

你的问题是<%=在每个例子的开头 - 这将输出表达式的结果,这@posts本身就是.

替换它,<%看看你如何去.

编辑:第一个例子是我将使用的例子,每个和raw.

再次编辑:在视图中put非常典型 - 尝试类似以下内容:

<% @posts.each do |post| %>
  <%= post %>
<% end %>
Run Code Online (Sandbox Code Playgroud)