現在、 paginate_by_sqlメソッドを使用してページ化するコレクションを構築するwill_paginateの実装があります。total_entriesのカスタムクエリがありますが、これは非常に複雑で、DBに大きな負荷をかけます。したがって、ページネーションからtotal_entriesを完全に削除したいと思います。
言い換えると、「前へ1 [2] 3 4 5次へ」の典型的なページネーション表示の代わりに、「次へ-前へ」ボタンのみが必要です。しかし、私たちはいくつかのことを知る必要があります。
- 前のリンクを表示しますか?もちろん、これは、現在の選択で表示されているレコードより前に存在するレコードの場合にのみ発生します。
- 次のリンクを表示しますか?コレクションの最後のレコードが表示されている場合、これは表示されません。
ドキュメントから
:total_entriesを指定しない場合、行をカウントするためのクエリが自動的に生成されます。この生成されたSQLで問題が発生した場合は、アプリケーションで手動でカウントを実行することをお勧めします。
したがって、最終的に理想的な状況は次のとおりです。
- データベースに過度の負荷がかかるため、total_entriesカウントを削除します
- ナビゲートするために次/前のボタンのみを使用してセミページネーションで一度に50レコードを表示し、使用可能なすべてのページ番号を表示する必要はありません
- それに応じて次のボタンと前のボタンのみを表示します
誰かが同様の問題に取り組んだり、解決策について考えたことはありますか?