使用没有paginate_array的Kaminari反向分页?

时间:2014-07-21 13:09:45

标签: ruby-on-rails ruby pagination kaminari

当谈到铁轨上的红宝石时,我是初学者。在我的项目中,我正在使用' kaminari' gem分页图像集。我想颠倒原来的分页,而不是:

< , 1, 2, 3, 4 ... 10, > 

*其中数字是页码,箭头显示分页视图的上一页和下一页

我想得到:

<, 10, 9, 8, 7 ... 1, >

我的问题是我无法找到任何可行的解决方案,因此我要求你们寻求帮助。由于优化原因,我想避免使用paginate_array。 有没有办法简单地从右到左翻转分页?这种类似的东西甚至可能与kaminari或我应该切换到其他东西的分页?

1 个答案:

答案 0 :(得分:0)

您最终可以使用sql orderlimitoffset和ruby reverse。我尝试实现一些例子但需要测试。

在模型的某个地方你有返回页面的方法:

def users(page)
  # find right offset
  offset = if page.to_i == 1
           # if page number 1 offset be 0 
             0
           elsif page.to_i == 2
           # if page number 2 offset be 10
             10
           else
           # in another case offset must be page * 10
             page.to_i.pred * 10
           end
  # order :desc and reverse
  users.limit(10).offset(offset).order(created_at: :desc).reverse
end

limit 10 offset 0就像page(1).per(10) 要么 limit 10 offset 10就像page(2).per(10)。 尝试解决这个问题。