我有一个我想用部分渲染的项目集合:
@items = ['a','b','c']
<%= render :collection => @items, :partial => 'item' %>
Run Code Online (Sandbox Code Playgroud)
我想用升序数字对元素进行编号.所以输出应该是:
3: a
2: b
1: c
Run Code Online (Sandbox Code Playgroud)
我知道rails在partial中提供了一个计数器,所以如果我想对降序的项进行编号,我可以创建以下部分:
<%= item_counter %>: <%= item %>
Run Code Online (Sandbox Code Playgroud)
这给了我
1: a
2: b
3: c
Run Code Online (Sandbox Code Playgroud)
但是对于递增的数字,我需要项目的总数,我可以提供一个本地的部分:
<%= render :collection => @items, :partial => 'item', :locals => {:total => @items.size} %>
Run Code Online (Sandbox Code Playgroud)
然后在部分:
<%= total - item_counter %>: <%= item %>
Run Code Online (Sandbox Code Playgroud)
但是我感觉像重复一样,因为渲染方法已经知道了集合的大小.
除了使用局部变量之外,真的没有办法让集合中的项目总数达到局部吗?
| 归档时间: |
|
| 查看次数: |
3127 次 |
| 最近记录: |