我在我的Rails应用程序中使用了will_paginate gem并循环遍历在页面上呈现的模型实例数组,每页限制为5个。在我添加will_paginate之前,我用简单的<%i + = 1%>编号了每个项目。当然每个循环通过数组+1,并且工作正常。
但是现在我使用will_paginate会在每个页面重新开始计数,所以第1页的项目分别为1,2,3,4,5,然后在第二页上重新开始... 1,2 ,3,4,5
显然这不是理想的。当您转到上一页时,如何让计数继续?
答案 0 :(得分:4)
will_paginate
Collection
不仅仅是一个简单的Array
或ActiveRecord::Relation
。相反,它定义了一些additional methods,例如:current_page
,per_page
,offset
,total_entries
或total_pages
。
您可以使用Collection#offset
来计算当前索引:
<% @collection.each_with_index do |item, index| %>
<%= @collection.offset + index + 1 %>
...
<% end %>
使用第一个索引初始化Enumerator#with_index
可以简化哪些内容(请注意.
和each
之间的with_index
:
<% @collection.each.with_index(@collection.offset + 1) do |item, index| %>
<%= index %>
...
<% end %>