今回railsで部分テンプレートを呼び込む際、collectionを使うと、ローカル変数をより簡単に渡せることを学習したため、アウトプットいたします。
renderメソッドについてわからない方は検索してみてください。
#collectionを使うと部分テンプレートにローカル変数を送る際にとても楽にできる
まずは前提としてanswerモデル、コントローラーがあります。
def index
@answers = Answer.all
end
これでそれぞれの人の答えが@answerに入りましたね。
ここでlocalを使って部分テンプレートに変数を送ると
<% @answers.each do |answer| %>
<%= render partial: "answer", locals: { answer: answer } %>
<% end %>
となります。
ただ、上記では、@answersに10個情報が入っていたなら、1回づつrender particalが呼び出されてしまいます(合計10回)。
つまり速度が遅くなってしまうのです。
そこで簡単に部分テンプレートに変数を遅れるのがcollectionです。
#collectionを使うと便利
<%= render partial: "answer", collection: @answers %>
たったこれだけで部分テンプレートにローカル変数を送ることができます。
例え10個情報が@answersに入っていたとしても、部分テンプレートにまとめて渡されて、10個のビューが作成されます。
私も学習段階になるため、間違い等が発生する場合があります。
その際はお手数ですが、ご指摘いただけると幸いです。