パーシャルレンダリング(locals,collection)

①locals

パーシャルに、ローカル変数を引数として渡す事でパーシャルを柔軟にできる。

・index.html.erb

<h1>入力フォーム</h1>
<%= render partial: "form", locals: { point: @point }  %>

・edit.html.erb

<h1>編集フォーム</h1>
<%= render partial: "form", locals: { point: @point }  %>

・_form.html.erb

<%= form_for(point) do |f| %>
  <p>
    <b>Point name</b><br>
    <%= f.text_field :name %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>

②collection

:collectionオプションを使用してパーシャルにコレクションを渡すと、コレクションのメンバーごとにパーシャルがレンダリングして挿入できる。

・index.html.erb

<h1>items</h1>
<%= render partial: "item", collection: @items %>

・_item.html.erb

<p>items Name: <%= item.name %></p>

🐤