部分テンプレートについて

どうもバンバンです。
今回は部分テンプレートについて復習する機会が
あったので備忘録として残していきます。
 
単語集
 
部分テンプレート
ビューファイルで繰り返し使用するコードを
切り出して再利用する仕組み
ex)汚くてごめんなさい

f:id:banban5775:20201119010244j:plain

部分テンプレート例
この同じ記述をするページが多くなればなるほど
コードは増えるし面倒くさいので、別の場所に記述
しておいて必要になれば呼び出してしまおう!
ってときに使用する仕組み
 
_〇〇.html.erbファイル
上記の別の場所のこと
ここに記載しておき、必要なときに呼び出す
 
renderメソッド
部分テンプレートを呼び出す際に利用するメソッド
<% render ~>
これだけではどの部分テンプレートを呼び出したいのか不明なので
オプションで指定していきます。
 
partialオプション
renderメソッドで使用できるオプション
<% render partial: "〇〇">
〇〇の部分テンプレート全体を指定する。これで_〇〇.html.erbを呼び出すことができる。
ex)
views/users/_user.html.erb
この部分テンプレートを呼び出したい場合
 
views/users/index.html.erbへ呼び出す記述は
<% render partial: "user">になります。
しかし同じusers傘下で無い場合は記述が少し異なります。
 
views/tweets/new.html.erbへ呼び出したい場合
<% render partial: users/user">となり
どのディレクトリの部分テンプレートなのかを明記する必要が出てくる
 
localsオプション
部分テンプレート内で変数を使えるようになるオプション
 
<div class="contents row">
<% @tweets.each do |tweet| %>
 
<%= render partial: "tweet", locals: { tweet: tweet } %>
tweet左にtweetm右を代入
 
<% end %>
</div>