Ruby on rails 限制将分页的页面数
因此,当使用Sphinx时,搜索限制为1000个结果。但是,如果有超过1000个由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 =>
生成的结果分页链接,将不考虑这一点,并提供超出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计数查询,该查询通常会运行分页以检索条目的总数