我有以下代码,它为我提供了一堆位置和每个位置的索引。
<%= paginate @locations %>
<% @locations.each_with_index do |location, index| %>
<h1><%= index + 1 %></h1>
<h2><%= location.name %></h2>
<% end %>
一切正常,我用正确的索引得到正确顺序的所有元素(宫殿有最多的访问,然后是酒吧等):
我使用Kaminari进行分页,如果我点击第二页显示接下来的5个位置,则索引会再次从1开始,但它应该给我6个。
那么如何在下一页继续获得持续的计数器/索引?
提前致谢
更新
我想出了以下内容,到目前为止效果很好:
<% if params[:page].nil? || params[:page] == "0" || params[:page] == "1" %>
<% x = 0 %>
<% else %>
<% page = params[:page].to_i - 1 %>
<% x = page * 10 %>
<% end %>
<% @locations.each_with_index do |location, index| %>
<%= index + x + 1 %>
...
答案 0 :(得分:1)
each_with_index是一个普通的ruby方法(我认为是Enumerable),它对分页结构一无所知。您可能需要提供额外的计算,除非Kaminari提供了某些东西(我还没有使用Kaminari)
如果这是will_paginate,我会做这样的事情,也许这对你也有用:
<h1><%= index + 1 + ((params[:page] || 0 ) * @items_per_page ) %></h1>
(你必须自己设置@items_per_page)