[解決済み] raw 対 html_safe 対 h で html をアンエスケープする。
2022-03-16 03:53:15
質問
次のような文字列があるとします。
@x = "<a href='#'>Turn me into a link</a>"
私の考えでは、リンクが表示されるようにしたい。つまり、@xのすべてをアンエスケープして文字列として表示させたいわけではないのです。を使うのとどう違うのでしょうか?
<%= raw @x %>
<%= h @x %>
<%= @x.html_safe %>
?
解決方法は?
Rails 3を検討中。
html_safe
を実際にHTMLセーフとして設定します(もう少し複雑ですが、基本的にはこれです)。こうすることで、ヘルパーやモデルから自由にHTMLセーフな文字列を返すことができるようになります。
h
はヘルパーからのものなので、コントローラやビューの中からしか使えません。これは、出力を強制的にエスケープします。非推奨というわけではありませんが、おそらくもう使うことはないでしょう。
html_safe
という、かなり珍しい宣言です。
式の前に
raw
を呼び出すことと同じです。
to_s
で連結された
html_safe
と同じようにヘルパーで宣言されています。
h
そのため、コントローラやビューでのみ使用することができます。
"
SafeBuffersとRails 3.0
がどのようなものかを説明しています。
SafeBuffer
を行うクラス)。
html_safe
マジック)の仕事をします。
関連
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜ?
-
[解決済み] Ruby on Railsのデータベースをパージまたは再作成する
-
[解決済み] rake db:migrate db:reset とdb:schema:loadの違いについて
-
[解決済み] Ruby on Railsで、DateTime、Timestamp、Time、Dateの違いは何ですか?
-
[解決済み] /users/sign_out" に一致するルートがない devise rails 3
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】railsの文字列とtextの違い?
-
[解決済み】attr_accessorとattr_accessibleの違いについて
-
[解決済み] Railsのカラムタイプに関するドキュメントはありますか?
-
[解決済み] Ruby on Rails: 文字列をHTMLとしてレンダリングする方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】bundle installが "Could not locate Gemfile "を返す。
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] railsでhidden fieldタグを使用する方法
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"