【Ruby】Sinatraで部分テンプレート


部分テンプレートって便利ですよね、モジュールみたいで好き

railsの部分テンプレートの記事って色々あるのに、sinatraはあんまりないから書き残して置こうと思います。

まあ、リファレンスに書いてあるから、そっち見て探せば良いんですがね
(参考 -> 困ったらリファレンスかコード見て判断しろという声が聞こえる
パンピーエンジニアの僕達はこんな、旧時代のgoogle翻訳みたいな文章読むの辛いんですよ・・・

実はsinatraはリクエストの処理の時みたいにerbファイルを呼び出せます。
今回は普通にgetリクエストでindex.erbが呼び出された場合です。

test_tmp.erb
<p>ここに部分テンプレートの内容を書くよ</p>
index.erb
はい、簡単!
<%= erb :'test_tmp' %>

部分テンプレートなので、変数を渡して部分テンプレートを呼び出す度に変化を求める人もいるでしょう。

test_tmp.erb
この値を受け取ったよ -> <%= locals[:value] %>
index.erb
はい、簡単!
<%= erb :'test_tmp', :locals => {:value => 'qiita最高'} %>
<%= erb :'test_tmp', :locals => {:value => 'stackoverflowは英語だから嫌だ'} %>

良いですね。部分テンプレート良い感じ。
本当はrailsのrenderを使おうと思ったんだけど、sinatraだとよく分からなかった。
誰か強いエンジニアがsinatraでrenderの使い方を記事にしてくれるでしょう・・・