在will_paginate页面数量限制(Limit number of pages in will

2019-06-23 16:40发布

因此,在使用时狮身人面像搜索结果限制为1000个结果。 但是,如果有超过1000所产生的结果分页链接will_paginate没有考虑到这一点,并超出页面提供链接1000/per_page 。 是一种明显的方式设置一个最高的网页或类似的东西?

干杯。

Answer 1:

我认为这是更好提交参数:total_entries到方法paginate

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

will_paginate将产生只为需要显示1000个结果页面的链接数。

您还可以验证请求的页面属于区间:

if params[:page].to_i * 30 <= 1000
  @posts = Post.paginate(:page => params[:page], :per_page => 30, 
                         :total_entries => 1000)
end

此外,通过提交参数:total_entries ,您避免SQL COUNT查询will_paginate正常运行检索条目总数。



Answer 2:

if params[:page].to_i * 30 <= 1000
  @posts = Post.paginate(:page => params[:page], :per_page => 30)
end


Answer 3:

我找到了最好的解决办法是要做到这一点:

@results = Model.search(...)
if @results.total_pages >= (1000/Model.per_page)
  class << @results; def total_pages; 1000/Model.per_page; end end
end

凡1000最好不要硬编码:)。 这可以让你的will_paginate视图助手的正确行为的自由,



文章来源: Limit number of pages in will_paginate