0

フラッシュメッセージはRailsによって自動的にエスケープされるべきですか? そうでない場合、メッセージが確実にエスケープされるようにする方法 (を使用せずにCGI::escapeHTML)?

いくつかの検索を行った後、エスケープする必要があることがわかり、html_safe に html を表示するメッセージが表示されました。でもやってみると

flash[:error] = "<b>YO</b>"

としてではなく、太字のYO<b>YO</b>として表示されます。string オブジェクト自体は html_safe ではないことに注意してください。

4

3 に答える 3

0

html_safeコントローラーでエスケープしたいフラッシュメッセージに使用する必要があります。ビューから生の関数を削除します。

flash[:error] = "<b>YO</b>".html_safe
于 2015-06-15T12:30:27.687 に答える
0

これを処理する正しい方法は、フラッシュ メッセージを表示する最後の場所ですapplication.html.erb。変化する

<%= message %>

  <% flash.each do |message_type, message| %>
    <div class="alert alert-<%= message_type %>"><%= message %></div>
  <% end %>

<%= sanitize message %>

sanitizeスタイルを確実に取得するために、文字列が通過するパイプラインの終点で常に文字列に適用することを忘れないでください。

于 2017-10-09T06:13:23.230 に答える