[解決済み] Ruby on Rails: 文字列をHTMLとしてレンダリングする方法は?
2022-04-23 06:03:47
質問
私は
@str = "<b>Hi</b>"
と、私のerbビューに表示されます。
<%= @str %>
ページに表示されるものは
<b>Hi</b>
本当に必要なのは
こんにちは
. 文字列をHTMLマークアップとして"解釈"するrubyの方法は何ですか?
編集 の場合。
@str = "<span class=\"classname\">hello</span>"
私の見解では、私が行う場合
<%raw @str %>
HTMLのソースコードは
<span class=\"classname\">hello</span
ここで、私が本当に欲しいのは
<span class="classname">hello</span>
(二重引用符をエスケープしていたバックスラッシュを除いたもの)。これらの二重引用符をquot;unescape"する最良の方法は何でしょうか?
どのように解決するのですか?
アップデイト
セキュリティ上の理由から
sanitize
の代わりに
html_safe
.
<%= sanitize @str %>
これは、文字列に悪意のあるコードが埋め込まれている可能性があるため、セキュリティ対策としてRailsが文字列をエスケープしてくれているということです。しかし、Railsにあなたの文字列が
html_safe
のように、そのまま通過してしまいます。
@str = "<b>Hi</b>".html_safe
<%= @str %>
または
@str = "<b>Hi</b>"
<%= @str.html_safe %>
使用方法
raw
は正常に動作しますが、やっていることは、文字列を変換し、その後に
html_safe
. 文字列があることが分かっている場合、私はむしろ
html_safe
なぜなら、不必要なステップを省き、何が起こっているのかを明確にすることができるからです。文字列エスケープとXSS対策についての詳細は
このアスキーキャスト
.
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] Flexbox:水平方向と垂直方向の中央揃え
-
[解決済み】なぜHTMLは "chucknorris "を色と見なすのか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTML IFステートメント
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] インラインCSSでa:hoverを記述するには?
-
[解決済み] WebSocketとサーバー送信型イベントの比較/EventSource
-
[解決済み] HTMLでBase64画像を表示する方法
-
[解決済み] CSSだけでリンクを無効化する方法
-
[解決済み] ラジオボタンをデフォルトで選択するには?[重複しています]
-
[解決済み] 特定のクラスや属性を持たない要素を選択するCSSセレクタは書けますか?
-
[解決済み] localStorage、sessionStorage、session、cookieの違いは何ですか?
-
[解決済み] div内の画像の下に余分なスペースがある