■
render メソッド
renderメソッドは、部分テンプレートを呼び出す際に利用するメソッド
partial オプション
renderメソッドで使用できるオプション。 partialというオプションを付けることで、明示的に部分テンプレート名を指定し、部分テンプレートを表示することができます。
下の例では、_sample.html.erbという部分テンプレートを呼び出しています。
【例】
<% render partial: "sample" %>
locals オプション
renderメソッドで使用できるオプションです。 localsというオプションを付けることで、部分テンプレート内でその変数を使えるようになります。
【例】
<% render partial: "sample", locals: { post: "hello!" } %>
えっ
これで部分テンプレート内においてhello!という文字列の代入されたpostという変数が使えるようになります。
では、renderメソッドを利用して_post.html.erbを呼び出す
index.html.erbを以下のように編集
app/views/posts/index.html.erb
<% @posts.each do |post| %>
<%= render partial: "post", locals: { post: post } %>
<% end %>
部分テンプレートを使うメリット2こ
・繰り返し書くコードを一回で済ます
・修正するときに修正箇所が少なく済む