Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 限制将分页的页面数_Ruby On Rails_Ruby_Pagination_Will Paginate - Fatal编程技术网

Ruby on rails 限制将分页的页面数

Ruby on rails 限制将分页的页面数,ruby-on-rails,ruby,pagination,will-paginate,Ruby On Rails,Ruby,Pagination,Will Paginate,因此,当使用Sphinx时,搜索限制为1000个结果。但是,如果有超过1000个由生成的结果分页链接,将不考虑这一点,并提供超出1000/每页的链接。这是设置最大页数的明显方式还是类似的方式 干杯。如果参数为[:page],则发送至_i*30参数[:page],:per_page=>30) if params[:page].to_i * 30 <= 1000 @posts = Post.paginate(:page => params[:page], :per_page =>

因此,当使用Sphinx时,搜索限制为1000个结果。但是,如果有超过1000个由
生成的结果分页链接,将不考虑这一点,并提供超出
1000/每页的链接。这是设置最大页数的明显方式还是类似的方式

干杯。

如果参数为[:page],则发送至_i*30参数[:page],:per_page=>30)
if params[:page].to_i * 30 <= 1000
  @posts = Post.paginate(:page => params[:page], :per_page => 30)
end
结束
我发现最好的解决方案是:

@results = Model.search(...)
if @results.total_pages >= (1000/Model.per_page)
  class << @results; def total_pages; 1000/Model.per_page; end end
end
@results=Model.search(…)
如果@results.total_pages>=(每页1000个/型号)

class我认为最好将参数
: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
if-params[:page]。to_i*30 params[:page],:per_page=>30,
:项目总数=>1000)
结束
此外,通过提交参数
:total_entries
,可以避免sql计数查询,该查询通常会运行分页以检索条目的总数