无法理解为什么我们使用html_safe而不是传统的html。
def group(content)
html = "".html_safe
html << "<div class='group'>".html_safe
html << content
html << "</div>".html_safe
html
end
答案 0 :(得分:2)
我同意html_safe
在此示例中没有多大意义,因为content_tag
会更短,更易于阅读并且会自动转义用户输入:
def group(content)
content_tag(:div, content, class: 'group')
end
答案 1 :(得分:0)
在Rails HTML ERB模板中,传递给它的字符串都经过HTML转义(以防止Cross Site Scripting注入字符串中的HTML代码,以便攻击者可以在您的网站访问者上执行JavaScript)。但是,有时我们知道我们的字符串对于HTML是安全的,并且不希望对其进行转义,以便可以实际呈现HTML。为此,我们在字符串上调用.html_safe
,以将其标记为对HTML呈现安全。通常,您通常希望尽可能避免使用此功能,因为这样可以更容易出错,并使XSS成为您网站上可能的攻击。</ p>