パーシャルでレンダリングしたいアイテムのコレクションがあります:
@items = ['a','b','c']
<%= render :collection => @items, :partial => 'item' %>
そして、要素に昇順の番号を付けたいと思います。したがって、出力は次のようになります。
3: a
2: b
1: c
Rails はパーシャル内にカウンターを提供することを知っているので、項目に降順で番号を付けたい場合は、次のパーシャルを作成できます。
<%= item_counter %>: <%= item %>
それは私に与えます
1: a
2: b
3: c
しかし、昇順の数値については、項目の合計数が必要です。これは、ローカルからパーシャルに提供できます。
<%= render :collection => @items, :partial => 'item', :locals => {:total => @items.size} %>
そして部分的に:
<%= total - item_counter %>: <%= item %>
しかし、render メソッドは既にコレクションのサイズを認識しているため、繰り返しのように感じます。
ローカル変数を使用する以外に、パーシャル内のコレクションのアイテムの総数を取得する方法は本当にありませんか?