データファイル
ページのコンテンツデータをレンダリングから抜き出すと便利な場合があります。
この方法では, あるチームメンバーがコンテンツのデータベースの作成に集中でき,
その作業の間に他のチームメンバーはサイト構造を組むことができます。
データファイルは data
フォルダの中に .yml
や .json
として作ることができ,
テンプレートの中でこの情報を使うことができます。
data
フォルダは, source
フォルダと同じように,
プロジェクトのルートに置かれます。
データが用意された data/people.yml
を例として示します:
friends:
- Tom
- Dick
- Harry
テンプレートファイルの中ならどこからでも, このデータにアクセスできます:
<h1>友だち一覧</h1>
<ol>
<% data.people.friends.each do |f| %>
<li><%= f %></li>
<% end %>
</ol>
次のようにレンダリングされます:
<h1>友だち一覧</h1>
<ol>
<li>Tom</li>
<li>Dick</li>
<li>Harry</li>
</ol>
.yml
(people) のファイル名はテンプレートの中では, data.people
のように,
データが保存されたオブジェクトの名前になるので注意してください。
サブディレクトリでも同じように機能します。ファイルが data/people/tom.yml
にある場合,
data.people.tom
でアクセスできます。
データを保存のために YAML の代わりに JSON を使うこともできます。
上記の例では data/people.json
を使うことができます:
{
"friends": [
"Tom",
"Dick",
"Harry"
]
}