次のような文字列があるとします
@x = "<a href='#'>Turn me into a link</a>"
私の考えでは、リンクを表示したいのです。つまり、@x のすべてをエスケープ解除して文字列として表示したくないのです。
<%= raw @x %>
<%= h @x %>
<%= @x.html_safe %>
?
ベストアンサー1
Rails 3 を検討する:
html_safe
実際には、文字列を HTML セーフとして設定します (実際はもう少し複雑ですが、基本的にはこれです)。この方法では、ヘルパーまたはモデルから HTML セーフ文字列を自由に返すことができます。
h
ヘルパーからのものであるため、コントローラまたはビュー内からのみ使用できます。出力は強制的にエスケープされます。これは実際には非推奨ではありませんが、おそらくもう使用されません。唯一の用途は宣言を「元に戻す」ことですがhtml_safe
、これはかなり珍しいことです。
式の先頭に を追加することは、実際にはを連鎖してraw
呼び出すことと同じですが、 と同様にヘルパーで宣言されるため、コントローラーとビューでのみ使用できます。to_s
html_safe
h
「SafeBuffers と Rails 3.0SafeBuffer
「 」は、 (魔法を実行するクラス)がどのように動作するかについての優れた説明ですhtml_safe
。