ruby-on-rails - will_paginate 列表中每个项目的正确编号?

标签 ruby-on-rails ruby arrays pagination will-paginate

我在我的 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不只是一个简单的ArrayActiveRecord::Relation .相反,它有一些 additional methods已定义,例如:current_page , per_page , offset , total_entriestotal_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/

相关文章:

Ruby 1.9.3 用 eval 定义 var

javascript - 具有重复数组元素的奇怪 for 循环行为

c++ - 如何在 C++ 中更改二维数组中数字的位置?

css - 为什么保存 .scss 文件会在 Rails 4 中创建一个 .css 文件?

ruby-on-rails - Rails 无法登录到 postgresql - PG::Error - 密码 - 正确信息

ruby-on-rails - 通过迁移在 ruby​​-on-rails 3 中创建表?

java - Rails 和 Java 上的 Angular 和 Rest 服务之间的 session

javascript - 在 AJAX 调用中填充外部数组

ruby-on-rails - 仍然允许搜索的 Rails 加密列

ruby-on-rails - Rails : Getting “Table events has no column named user_id” error on all tests