コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Railsの raw は <%== と同じ

小ネタ

そもそもrawとは

通常、erbにて変数出力をするときは以下のような構文を用いる

<%= @hoge_var %>

この @hoge_var にHTMLが含まれる場合はRails側でよしなにエスケープ処理がかかり、文字列として表現されるようになる。

ただし、ただのまま変数の文字列をHTMLとして解釈してほしい場合もあるので、その場合はrawを使う

<%= raw @hoge_var %>

rawと同義の記号

Railsガイドに以下のように記述がある通り <%== と同義

rawと同等の<%==を使います。 - Active Support コア拡張機能 - Railsガイド

html_safeではなくraw

似たようなものとしてhtml_safeを使うのがいいかもしれないと思う場面がありますが、内部実装としてはhtml_safeを使っているrawを使ったほうがいい

def raw(stringish)
  stringish.to_s.html_safe
end

関連リンク