Volt Introduction and Docs

コンテンツバインディング

もっとも基本的なバインディングはコンテンツバインディングです。

<p>Hello {{ name }}</p>

コンテンツバインディングとは、{{}} の間の Ruby コードを実行し、その戻り値をレンダリングするものです。バインディングされているコンテンツのデータが変更を監視されていれば、その変更に応じてテキストが更新されます。コンテンツバインディングされたテキストは、デフォルトでエスケープされます。

Raw

raw メソッドを使うと、HTML エスケープを無効にすることが可能です。

<p>Your html is {{ raw your_html }}.</p>

raw の利用には危険が伴います。なぜなら、もしユーザーの操作によって生じる HTML が他のユーザーに対しても表示される場合、容易に悪意のある JavaScript を (例えば <img src=".." onload="somejs" /> のように) 仕込むことができるからです。これはクロスサイトスクリプティング攻撃と呼ばれます。クロスサイトスクリプティング攻撃について理解し、それを回避することができる場合にのみ、raw を利用するようにしてください。