LoginSignup
1
0

collectionオプション

Posted at

collection オプションは指定したインスタンス変数の中にある要素の数だけ、部分テンプレートを呼びだすことができる。
collectionを使えば繰り返し表示させたい要素がインスタンス変数に複数入っている場合でもeachメソッドを使わずrenderで繰り返し表示できる。

collectionを使う場合

<%= render partial: 'hoge', collection: @hoges %>

collectionを使用する際は、複数要素が入っているインスタンス変数を、collectionオプションの対象に指定する。部分テンプレート内では、インスタンス変数から取り出した要素を、部分テンプレート名と同じ変数名で扱うことができます。
つまり、_hoge.html.erb内において、@hogesから取り出された1つ1つの要素はhogeとして扱うことができます。

eachを使う場合

<% @hoges.each do |hoge|%>
  <%= render partial: 'hoge', lacals: {hoge: hoge} %>
<% end %>

2行目の解説
_hoge.html.erbという部分テンプレートを呼び出し、その部分テンプレート内では、取り出された1つのhogeという要素をhogeという名前で扱う設定をする

1
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
1
0