will_paginate gem:限制页数

时间:2014-05-07 19:20:51

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

enter image description here

这是我的分页,我想将页数限制为10,例如,如果没有与图片中相同的问题我该怎么办,我正在使用will_paginate gem

3 个答案:

答案 0 :(得分:12)

以下命令:

<%= will_paginate @yourwhatevers, inner_window: 3, outer_window: 1 %>

完成此任务。我们假设你在36页的第15页,你会得到:

Previous 1 2 ... 12 13 14 15 16 17 18 .. 35 36 Next

inner_window,换句话说,当前页面右侧和左侧有多少,默认为4,但为了更好,您可以将它设为1或2. outer_window默认为1,所以我的上面的行不能完全包含它

答案 1 :(得分:3)

根据您的想法,有很多方法可以做到这一点。看看这个答案:

Limit number of pages in will_paginate

一个例子,将其限制为100个条目,页面上有10个(因此10页)

@posts = Post.paginate(:page => params[:page], :per_page => 10, 
                       :total_entries => 100)

答案 2 :(得分:3)

您可以将结果数量限制为页面大小的10倍:

MyModel.limit(300).paginate(page: params[:page])

这意味着你不能返回超过300个结果,因此不超过10页。

或者你可以探索一些will_paginate rendering options。您可以配置在分页结束时和当前页面周围显示的页面数量 - 甚至可以完全删除页码。例如:

will_paginate @results, inner_window: 1, outer_window: 1

将在问题中显示Previous | 1 | ... | 9 | ... | 16 | Next示例。