Railsにおける「ページネーション」は、大量のデータを複数ページに分けて表示するための機能です。ユーザビリティの向上とパフォーマンスの最適化において重要です。この機能を簡単に導入・管理できるGemとして代表的なのが Kaminari です。
1. Kaminariの導入手順
a. Gemのインストール
Gemfileに以下を追加します:
その後、インストール:
b. モデルへのページネーション適用
例えば、Articleモデルに対してページネーションを適用したい場合:
-
page(params[:page]):現在のページを指定。 -
per(10):1ページあたりの表示件数(省略可能。デフォルトは25件)。
2. ビューの作成
コントローラーでページネーション済のインスタンス変数を渡した上で、ビューで以下のように記述します:
Kaminariが提供するヘルパーにより、HTMLのページリンクが自動生成されます。
3. カスタマイズ(必要に応じて)
a. デフォルト設定の変更
次のコマンドで設定ファイルを生成できます:
生成された config/initializers/kaminari_config.rb を編集することで、以下のような設定が可能です:
b. ビューのカスタマイズ
Kaminariのデフォルトテンプレートをカスタマイズするには:
これにより、app/views/kaminari/ 以下にHTMLテンプレートが生成され、見た目を自由に変更できます。
4. その他の活用ポイント
-
検索(Ransackなど)と組み合わせて使うことで、検索結果に対してもページネーションを適用できます。
-
APIレスポンスとして使う場合は、JSONにページ情報(
current_page,total_pagesなど)を含めることでフロントエンドと連携可能です。
まとめ
Kaminariを使うことで、Railsアプリケーションに効率的にページネーションを導入できます。ユーザー体験の向上とサーバー負荷の軽減の両方に貢献するため、リスト表示が発生する多くの場面で有用な機能です。なお、同様のGemに will_paginate もありますが、Kaminariの方がカスタマイズ性に優れています。
ChatGPT4o 生成日:2025/06/21