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

sinatraでHTMLの出力をしてみる-さくらのVPSではsnatraを使いHTMLの出力をしてみました。sinatraには便利なところがあり、layout.erbというのを使う事でレイアウトの共通化などができます。
実際にやってみる
index.erbファイルを開きます。
[ruby]
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf8">
<title><%= @title %></title>
</head>
<body>
<h1>表示確認</h1>
</body>
</html>
[/ruby]
となっていると思います。このファイルを以下のように書き換えます。
[ruby]
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf8">
<title><%= @title %></title>
</head>
<body>
<%= yield %>
</body>
</html>
[/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を修正します。
[html]
<h1>表示確認</h1>
[/html]
これでOKです。ファイルをアップロードして確認してみてください。特に何もソースなどは変わっていませんがlayout.erbが読み込まれている形になります。
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS