「%>」と「-%>」の違い

Ruby on Railsで採用されているERB(eRubyの実装)。これによって,HTML内にRubyコードを記述することで,動的なコンテンツを出力することが可能となっている。

いくつかのサイトや書籍を見ながらRoRアプリケーションを試していたところ,以下の点に気がついた。

「%>」と「-%>」,何が違うのか?

マイナス記号が付いている場合と付いていない場合がある。例えば,

‘edit’, :id => user.id -%>

といったように。

上記のコードの場合,マイナス記号を削除して実行しても,何ら動作に変化はない。ERBの処理結果に関しても,同一のものである。

この疑問は,以下のサイトが解答を教えてくれた。

標準添付ライブラリ紹介 【第 10 回】 ERB」- Rubyist Magazine

なるほど,trim_modeという機能のためのマイナス記号だったようだ。例えば,

という記述だった場合,出力結果は,

よういちろう

となり,マイナス記号がない「%>」の場合の出力結果は,

よういちろう

というようになる。

お気付きの方もいらっしゃると思うが,最初に示したコード例では,「-%>」の後に閉じタグが続いているため,直後の改行というものがない。この場合には,「%>」の場合と同じ挙動,つまり,マイナス記号をつけている意味がない,ということになるようだ。

マイナス記号を付けるか付けないかで,出力されるHTMLの整形具合が変わってきたり,思わぬ改行が挿入されたりすることになる。しっかりと気をつけて使い分けをする必要があるだろう。

このエントリーをはてなブックマークに追加

関連記事

2023年のRemap

Remapにファームウェアビルド機能を追加しました

Google I/O 2023でのウェブ関連のトピック

2022年を振り返って

現在のRemapと今後のRemapについて