sinatraでテンプレートを使用する

sinatraでHTMLの出力をしてみる-さくらのVPSではsnatraを使いHTMLの出力をしてみました。sinatraには便利なところがあり、layout.erbというのを使う事でレイアウトの共通化などができます。

実際にやってみる

index.erbファイルを開きます。

[ruby]

<%= @title %>

表示確認

[/ruby]

となっていると思います。このファイルを以下のように書き換えます。

[ruby]

<%= @title %> <%= yield %> [/ruby]

このようにします。h1の箇所が<%= yield %>と置き換わりました。のようにしたらlayout.erbとして新規に保存します。index.erbと同じ所にファイルを置きます。

ファイル構造

[c] /home/logw/sinatra/public         ├──/tmp         │  └always_restart.txt #sinatraをブラウザで更新したら反映されるようにする-さくらのVPSで追加         ├──/views          │  ├index.erb         │  └layout.erb #今回追加         ├──config.ru         └──myapp.rb [/c]

このようになります。ちょっとこのままアップすると少しおかしなことになるのでindex.erbを修正します。

index.erbの修正

index.erbを修正します。

<h1>表示確認</h1>

これでOKです。ファイルをアップロードして確認してみてください。特に何もソースなどは変わっていませんがlayout.erbが読み込まれている形になります。