我在我的 Rails 应用程序中使用 will_paginate gem 并循环遍历在页面上呈现的模型实例数组,每页限制为 5 个。在我添加 will_paginate 之前,我用一个简单的 <% i += 1 %> 对每个项目进行了编号,这当然会随着数组的每个循环而增加 1,并且工作正常。
但现在我正在使用 will_paginate 计数在每一页上重新开始,所以第 1 页的项目变为 1、2、3、4、5,然后在第二页上它重新开始...... 1、2、3 , 4, 5
显然这并不理想。当您转到前几页时,我如何让计数继续?
最佳答案
A 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 %>
关于ruby-on-rails - will_paginate 列表中每个项目的正确编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27163874/