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

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

実際にやってみる

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

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf8">
<title><%= @title %></title>
</head>

<body>
<h1>表示確認</h1>
</body>
</html>

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

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf8">
<title><%= @title %></title>
</head>

<body>
<%= yield %>
</body>
</html>

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

ファイル構造

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

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

index.erbの修正

index.erbを修正します。

<h1>表示確認</h1>

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

個人支援・寄付について

サイトラボではBuildreeの開発などのため、現在個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではkyashというサービスをつかっております。ビットコインでも受け付けております。