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 自動エスケープを行うことも文書化されていませんか?