【问题标题】:Correct number for each item in will_paginate list?will_paginate 列表中每个项目的正确编号?
【发布时间】:2018-03-20 18:17:30
【问题描述】:

我在我的 Rails 应用程序中使用 will_paginate gem 并循环遍历在页面上呈现的模型实例数组,并且每页限制为 5 个。在我添加 will_paginate 之前,我用一个简单的 对每个项目进行了编号,当然每个循环都通过数组 +1,并且工作正常。

但是现在我使用 will_paginate 计数在每一页上重新开始,所以第 1 页的项目依次为 1、2、3、4、5,然后在第二页上重新开始... 1、2、3 , 4, 5

显然这并不理想。当您转到上一页时,如何让计数继续?

【问题讨论】:

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


    【解决方案1】:

    will_paginateCollection 不仅仅是一个简单的ArrayActiveRecord::Relation。相反,它定义了一些additional methods,例如:current_pageper_pageoffsettotal_entriestotal_pages

    您可以使用Collection#offset 来计算您当前的指数:

    <% @collection.each_with_index do |item, index| %>
      <%= @collection.offset + index + 1 %>
      ...
    <% end %>
    

    可以通过使用第一个索引初始化Enumerator#with_index 来简化什么(注意eachwith_index 之间的.

    <% @collection.each.with_index(@collection.offset + 1) do |item, index| %>
      <%= index %>
      ...
    <% end %>
    

    【讨论】:

    • 感谢简单的解决方案:)
    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2021-07-17
    • 2016-06-30
    • 2011-12-02
    • 2017-12-17
    • 1970-01-01
    • 2017-01-27
    相关资源
    最近更新 更多