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

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

実際にやってみる

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

01<!DOCTYPE html>
02<html lang="ja">
03<head>
04<meta charset="utf8">
05<title><%= @title %></title>
06</head>
07 
08<body>
09<h1>表示確認</h1>
10</body>
11</html>

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

01<!DOCTYPE html>
02<html lang="ja">
03<head>
04<meta charset="utf8">
05<title><%= @title %></title>
06</head>
07 
08<body>
09<%= yield %>
10</body>
11</html>

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

ファイル構造

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

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

index.erbの修正

index.erbを修正します。

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

個人支援・寄付について

サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。

  • ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS