Ste*_*ram 6 ruby pagination ruby-on-rails will-paginate
因此,使用Sphinx时,搜索限制为1000个结果.但是,如果有超过1000个结果生成的分页链接will_paginate不考虑这一点,并提供超出页面的链接1000/per_page.是设置最大页面或类似内容的明显方法吗?
干杯.
gpa*_*ris 14
我认为最好将参数提交:total_entries给方法paginate:
@posts = Post.paginate(:page => params[:page], :per_page => 30,
:total_entries => 1000)
Run Code Online (Sandbox Code Playgroud)
will_paginate将仅为显示1000个结果所需的页数生成链接.
您还可以验证请求的页面是否属于间隔:
if params[:page].to_i * 30 <= 1000
@posts = Post.paginate(:page => params[:page], :per_page => 30,
:total_entries => 1000)
end
Run Code Online (Sandbox Code Playgroud)
此外,通过提交参数:total_entries,您可以避免通常运行will_paginate的sql COUNT查询来检索条目总数.
我发现最好的解决方案是这样做:
@results = Model.search(...)
if @results.total_pages >= (1000/Model.per_page)
class << @results; def total_pages; 1000/Model.per_page; end end
end
Run Code Online (Sandbox Code Playgroud)
其中 1000 最好不进行硬编码:)。这可以让你免费获得 will_paginate 视图助手的正确行为,
| 归档时间: |
|
| 查看次数: |
6771 次 |
| 最近记录: |