0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【rails】partialをrenderする時(部分テンプレートを読み込む時)のcollectionについて

Last updated at Posted at 2020-10-20

今回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個のビューが作成されます。

私も学習段階になるため、間違い等が発生する場合があります。
その際はお手数ですが、ご指摘いただけると幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?