2012-04-16 65 views
5

因此,當使用Sphinx搜索時,限制爲1000個結果。但是,如果will_paginate生成的結果分頁鏈接超過1000個,則不會考慮此問題,並提供除1000/per_page之外的頁面的鏈接。是設置最大頁面或類似的一種顯而易見的方式嗎?will_paginate中的頁數限制

乾杯。

回答

1

我找到了最好的解決辦法是要做到這一點:

@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視圖助手的正確行爲,

+0

哈哈,這很有趣,解決了我的直接使用案例。 – 2017-12-07 15:31:30

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

我認爲這是最好的參數: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正常運行檢索條目總數。