🤖

SinatraのテンプレートエンジンERBを使う

2023/05/29に公開

erbを使ってviewファイルにわけよう!

app.rbに大量に書き込むと管理しずらいため、viewsディレクトリーを作成してviewファイルにわけていきます。Sinatraで使用できるテンプレートエンジンにはhaml,erb,sass,markdown,slim,coffescriptなどがあります。(参考:Views / Templates)
erbを呼び出すにはerb :indexとファイル名をシンボルで渡してあげます。

app.rb
get '/' do
  erb :index # ファイル名をシンボルで渡す
end
views/index.erb
<%= "Index" %>
app.rb
get '/about' do
  erb :about # ファイル名をシンボルで渡す
end
views/about.erb
<%= "About" %>

ビューファイルの基本となる共通部分はviews/layout.erbに切り出します。
views/layout.erbは優先的に読み込まれるため、共通部分をlayout.erbに記述し、個別記述部分を yieldで呼び出します。

layout.erb
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="urf-8">
  <title>test</title>
</head>
<body>
  <%= yield %>
</body>

Discussion