ビューとは、拡張子が .html のファイルで、レンダリングされ方をコントロールするための Ruby コードを記述できるものです。Volt はサーバー側でビューをコンパイルし、クライアントに送信します。ビューは以下のようなものになります。
<!-- app/main/views/main/index.html -->
<:Title>
My Page
<:Body>
<h1>My Page</h1>
<p>Welcome {{ Volt.current_user.name }}!</p>
Voltでは、ビューは専用のシンプルなテンプレート言語で記載します。ビューはセクションに分割することができます。セクションはセクションヘッダーから始まります。例えば、セクションヘッダーは以下のようになります。
```html
<:Body>
セクションヘッダーは先頭が大文字で始まる必要があります。タグと混同しないようにしてください。また、セクションヘッダーに閉じタグは使いません。もしセクションヘッダーを書かなかった場合は、:Body
セクションであるとして扱います。
セクションは同じファイル上のコンテンツの異なるパーツ(タイトルと本文など)を区別するのに役立ちます。
Volt では、ビューはシンプルなテンプレート言語で記述し、 {{
と }}
で囲むことで、どこにでも Ruby のコードを挿入することができます。また、Volt では、一般的な制御文 (if
、elsif
、else
、each
) をビューに記述することが可能です。更に、view
バインディングを使うことで、他のビューをレンダリングすることもできます。
Volt は MVC フレームワークと言うより、モデル - ビュー - ビューモデル (MVVM) のフレームワークに近いですが、「コントローラー」という言葉を使っています。これは、「ビューモデル」という言葉の代わりに「コントローラー」という言葉を使っていることを意味します。
ビューにおけるすべてのメソッド呼び出しやインスタンス変数の探索は、上記した「コントローラー」のコンテキストで実行されます。
もしビューが app/main/views/index/index.html
であるならば、app/main/controller/index_controller.rb
をコントローラーとして読み込みます。