そのため、Sphinx を使用する場合、検索は 1000 件の結果に制限されます。ただし、 によって生成された結果のページネーション リンクが 1000 を超える場合は、will_paginate
これを考慮せず、 を超えるページへのリンクを提供して1000/per_page
ください。最大ページ数などを設定する明白な方法はありますか?
乾杯。
そのため、Sphinx を使用する場合、検索は 1000 件の結果に制限されます。ただし、 によって生成された結果のページネーション リンクが 1000 を超える場合は、will_paginate
これを考慮せず、 を超えるページへのリンクを提供して1000/per_page
ください。最大ページ数などを設定する明白な方法はありますか?
乾杯。
: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
、will_paginate が通常実行してエントリの総数を取得する sql COUNT クエリを回避できます。
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
1000 がハードコードされていないことが望ましい場合:)。これにより、無料で will_paginate ビュー ヘルパーの正しい動作が得られます。