Volt Introduction and Docs

ビュー

ビューとは、拡張子が .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 では、一般的な制御文 (ifelsifelseeach) をビューに記述することが可能です。更に、view バインディングを使うことで、他のビューをレンダリングすることもできます。

ビューの裏にあるコントローラー

Volt は MVC フレームワークと言うより、モデル - ビュー - ビューモデル (MVVM) のフレームワークに近いですが、「コントローラー」という言葉を使っています。これは、「ビューモデル」という言葉の代わりに「コントローラー」という言葉を使っていることを意味します。

ビューにおけるすべてのメソッド呼び出しやインスタンス変数の探索は、上記した「コントローラー」のコンテキストで実行されます。

もしビューが app/main/views/index/index.html であるならば、app/main/controller/index_controller.rb をコントローラーとして読み込みます。