我的视图文件中有一个数组。数组中的每个值都包含html。我想通过数组而不是逃避html。但是,每当我运行html_safe
或raw
时,数组都会显示非转义的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 } %>
造成这种情况的原因是什么?如何解决?
答案 0 :(得分:5)
您的问题出在每个示例开头的<%=
- 这将输出表达式的结果,即@posts
本身。
将其替换为<%
,看看你如何去。
编辑:第一个例子是我将使用的例子,每个例子都是原始的。
再次编辑:在视图中看起来不常见 - 尝试类似以下内容:
<% @posts.each do |post| %>
<%= post %>
<% end %>