概要
Sinatra で erb を複数に分割する方法を紹介します
ヘッダやフッタ、サイドバーなど同じスタイルのページを作成するときに便利です
環境
- macOS 10.13.2
- Ruby 2.4.1p111
- sinatra 2.0.1
ヘッダーファイル作成
- vim views/header.erb
<head>
<title>title</title>
<link rel="stylesheet" type="text/css" href="../css/bulma.min.css">
<script type="text/javascript" src="../js/fontawesome-all.min.js"></script>
</head>
css や js などを参照しています
ページ本体で読み込む
- vim views/index.erb
<html>
<%= render(:erb, :header) %>
<body>
</body>
</html>
render
メソッドをコールすることで他の erb ファイルを参照します
参照された側で変数を使いたい場合
Sinatra 側でインスタンス変数を定義した場合は、それをそのままどこの erb でも参照することができます
ただ、index.erb で生成した変数などを header.erb で参照したい場合は以下のように render メソッドをコールします
<%= render(:erb, :header, :locals => { :title => "hogefuga" }) %>
locals を使って変数を指定します
上記の場合であれば header.erb 側で以下の用に参照することができます
<title><%= title %></title>
最後に
Sinatra で erb を分割する方法を紹介しました
過去に haml を使う方法を紹介しましたが haml でも同じようなことができます
デフォルトが erb なので erb を使う場合には参考にしてください
0 件のコメント:
コメントを投稿