Snippet

LokkaにSnippet(スニペット)を追加しました。

Snippetとはテンプレート間で共有したい部品を入れておくものです。Pageも同じ用途に使えるのでWordPressではそれが常套手段っぽいですが、@machidaさんが

「PageはURLが存在するので直接アクセスできるのが気持ち悪い」

と言っていたのでSnippetという名前で別に用意しました。

komagata [p0t]

このブログで言えば、右のプロフィールの部分でSnipetを使っています。今まではPageの機能を使っていたので、プロフィール単体がURLを持っているので妙なページが存在することになっていました。

Snippetは好きに名前を付けられるのでテンプレ内では下記のようにかけます。

<%= Snippet.first(:name => 'about').body %>

モデルのユーティリティメソッド

今回、各モデル用にユーティリティメソッドを用意しました。そのユーティリティメソッドとは"そのクラスで一番使いそうなメソッドをクラス名と同名のメソッドとして用意したもの"です。それを使えば上記は下記のように書けます。

<%= Snippet('about').body %>

要はこれです。

Ruby - クラス名と同名の関数にデフォルト動作をさせるパターン - komagata [p0t]

同じように他のモデルにも用意されています。

<h2><%= Page('inquiry').title %></h2>

DataMapperのAPIを使えば何でも取れますが、テンプレートがスッキリするかなと。

Comments


Option