limitusus’s diary

主に技術のことを書きます

テンプレートの使い方

ramazeはデフォルトでMVC開発ができる。

$ ramaze --create hoge

により生成した場合、V(iew)を担当するのはview/以下。

とりあえずpage.xhtmlとindex.xhtmlなどが生成されているはず。
大枠はpage.xhtmlに書かれている。これはmain.rbの

layout '/page'

に対応するのかな。

page.xhtmlの中の#@contentsに当たる部分を他のファイル(index.xhtml)とかで書く。
この中ではテンプレートとしてRubyを埋め込むことができる。

テンプレートの基本的な使い方はramaze本家のScreenCastを見れば十分に分かる。

PHPみたいに

<?r @n = 3 ?>
<?r foo = @n % 2 == 1 ? "odd" : "even"  ?>
#{foo}

的なことができるようだ。

テンプレートに内部変数を持ってきたい時にはその名前のメソッドの中でメンバ変数として使える状態にして置いておけばいい。

/fuga/123 であれば

def fuga(num)
    @n = num.to_i
end

などとしておいて

<p>#{@n}</p>

で呼び出すだけで123と表示させられる。括弧は省略可。