Tag: content for

Ruby on Rails的content_for会自动进行HTML转义吗?

使用Rails 3.0.6,我发现在视图中,如果我做了 content_for :food_name, “Macaroni & Cheese” 然后,当我使用content_for(:food_name)将其恢复时,然后&将进入& 已经。 如果我做一个content_for(:food_name).html_safe , &仍然是& 已经。 但如果按以下方式完成,则不会进行转义: content_for :food_name, “Macaroni & Cheese”.html_safe 在这种情况下, &将不会更改为& 自动。 现在,因为有些地方我实际上做了#{h content_for(:food_name)}并且它将被转义两次(成为& ),或者因为我在描述中有值,所以会很奇怪在某些值上调用h而不在其他值上调用它 。 此外,一个重要的问题是, 如果它自动逃脱,如果我添加” – come see us!”该怎么办” – come see us!” 到最后,依靠Rails 3来逃避它,现在, &被转义两次 。 在content_for文档中: http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for 我没有看到这样的描述。 那么上面的描述是正确的还是文档更正确 – 实际上没有自动HTML转义? 看起来好像来自上面网页上的源代码, content_for调用capture ,并且它执行了一个ERB::Util.html_escape ,所以实际上有一个自动转义,但应该真的存在,为什么呢? 是否也没有证据表明capture会自动逃脱?