我想明确地知道在我的Rails 5应用程序中何时运行sanitize
方法(何时不运行,例如因为它不会自动运行)。
例如,在嵌入<%= ... %>
内的视图文件中,我应该使用这些文件吗?
sanitize(record.value)
link_to(sanitize(record.value), ...)
tag.span(sanitize(record.value))
t("translation_string_html", :argument_value => sanitize(record.value))
还是这些?
record.value
link_to(record.value, ...)
tag.span(record.value)
t("translation_string_html", :argument_value => record.value)
答案 0 :(得分:0)
通常使用Rails助手时无需进行消毒。
例如,如果您遵循link_to
方法的结尾,则这是相关行
def content_tag_string(name, content, options, escape = true)
tag_options = tag_options(options, escape) if options
content = ERB::Util.unwrapped_html_escape(content) if escape
"<#{name}#{tag_options}>#{PRE_CONTENT_STRINGS[name]}#{content}</#{name}>".html_safe
end
如您所见,它既是用Erb的一些utils进行html转义的,又是html_safe
的转义,然后最终返回。