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
この場合、 は自動的&
に に変わりません。&
さて、私が実際に a#{h content_for(:food_name)}
を実行して 2 回エスケープされる ( になる&
)
場所があるため、または説明に値があるため、いくつかの値を呼び出して他の値を呼び出さないのは<meta>
奇妙になりh
ます。
また、1 つの大きな問題は、それが自動的にエスケープされ、その末尾に追加し、それをエスケープするために Rails 3 に依存するとどうなるかということ" - come see us!"
&
です。
content_for
ドキュメントで:
http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for
みたいな記述は見当たりません。では、上記の説明は正しいのでしょうか、それともドキュメントの方が正しいのでしょうか? 実際、自動 HTML エスケープはありません。
上記の Web ページのソース コードから、 をcontent_for
呼び出しcapture
、 を実行するように見えるERB::Util.html_escape
ので、実際には自動エスケープがありますが、実際には存在するはずであり、その理由は何ですか? capture
自動エスケープを行うことも文書化されていませんか?