我有一个我想用部分渲染的项目集合:
@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 %>
但是我感觉像重复一样,因为渲染方法已经知道了集合的大小。
除了使用局部变量之外,真的没有办法让集合中的项目总数达到局部吗?