🎉
部分テンプレートを render で記載する方法
rails で for_each を使い繰り返し表示する事が多くあります。
例えば index 内に for_each を使い配列のデータ分繰り返して表示するときです。
index.html.erb
#indexアクションに@users = User.allを記載している時
<% @users.each do |user| %>
<td><%= user.id %></td>
<td><%= user.name %></td>
<td><%= user.email %></td>
<% end %>
上記の記載を下記の様に記載することができコードの記載をスッキリさせる事ができます。
render に複数形の@から始まるオブジェクトをの配列を渡すと自動的に_user パーシャルレンダリングをして表示させる事ができます。
index.html.erb
<%= render @users %>
each ではデータ分繰り返し表示されるが render をつかう呼び出しが一回なのでパフォーマンスが上がります。
短縮した書き方ができる条件があります。
- 呼び出す部分テンプレートが views フォルダ内にある users フォルダに存在する。
- 部分テンプレート名が_user.html.erb である。
- 部分テンプレート内で使う変数が user である。
Discussion