each do 文におけるインデックス
hoge.html.erb
<% @hoges.each_with_index do |hoge, i| %>
<div data-columns="<%= i %>">
<%= hoge.content %>
</div>
<% end %>
上記のように、each do を each_with_index do と記述し、
インデックスのブロック変数( i )を与えてやることで、繰り返し処理にインデックスを振ることができる。
上記の例のようにdata-*属性を与えたい時などに応用することができる。
render partial の collectionオプションにおけるインデックス
- viewの記述
hoge.html.erb
<%= render partial: 'hoge', collection: @hoges, as: 'hoge' %>
- partialの記述
_hoge.html.erb
<div data-columns="<%= hoge_counter %>">
<%= hoge.content %>
</div>
先程の each do 文と同様の内容を partial の collection オプションを使って書くと上記のようになる。
collectionオプションの場合は、インデックスは自動で生成されており、「変数の名称_counnter」として扱うことができる。(この命名は与えたpartialの名称に依存する。)