レールの自動エスケープで問題が発生しています。現在、文字列は html_safe (そうです) であると考えられていますが、表示目的で html をエスケープする必要があります。文字列が取っている手順は次のとおりです。
my_string = render(:partial => "set_string", :locals => {:item => @item})
<%= my_string %>
パーシャルは基本的に
<h2>Page Header</h2>
<strong><%= item.name %></strong>
<%= item.body %>
etc
私の理解では、テキストをビュー (h2 など) に直接表示しているため、安全であると想定されており、アイテムの出力も適切にエスケープされるため、my_string 全体が安全になります。だから、私はそれを表示しようとすると
<%= my_string %>
残りの html はエスケープしません。h を追加してエスケープを強制しようとしましたが、うまくいきませんでした。
だから私の質問は、安全ではない文字列で何かを呼び出す以外に、安全な文字列のhtmlエスケープを強制する方法はありますか?
どうもありがとうございました。