我有一个flash_helper,我从一些网络教程中不方便地下载了,现在又回到了我的脑海中。从好的方面来说,我相信这里有很多才华横溢的程序员会觉得这很容易。 :)
# application_helper
def flash_helper
[:notice, :warning, :message].map { |f| content_tag(:div, flash[f], :class => f) if flash[f] }
end
此代码与<%= flash_helper%>结合使用在我的观点中,导致生成以下html代码:
["<div class=\"notice\">Your account has been reactivated.</div>", nil, nil]
...在视图中呈现为相当不吸引人的字符串:
["<div class=\"notice\">Your account has been reactivated.</div>", nil, nil]
如何重写代码以对其进行排序?
[nil,nil,nil]
当没有闪存时,上面的字符串被上面的flash_helper代码发送到我的所有视图。如果没有闪存,如何重写该代码以输出任何内容?
答案 0 :(得分:2)
您需要在阵列上的所有String上启动html_safe。
# application_helper
def flash_helper
[:notice, :warning, :message].map { |f|
content_tag(:div, flash[f].html_safe, :class => f) if flash[f]
}.compact
end
答案 1 :(得分:0)
默认情况下,Rails 3会转义HTML,除非另有说明。您需要做的就是在生成的字符串上调用.html_safe。以下是概述: