Rails collection rendering

Rails の collection rendering の復習。

レイアウトとレンダリング - Railsガイド

基本形

index.html.erb

<h1>Products</h1>
<%= render partial: "product", collection: @products %>

collection: @products として partial に渡すと、その単数形 product として変数が展開される。

_product.html.erb

<p>Product Name: <%= product.name %></p>

変数名を指定する

上述の例で product という変数名が気に入らないなら、as を使って変更することができる。

<%= render partial: "product", collection: @products, as: :item %>

locals で追加の変数を渡す

collection に加えて、別の変数を渡したい場合は locals が使える。

<%= render partial: "product", collection: @products,
           as: :item, locals: {title: "Products Page"} %>