ページ内ナビ
概要
Kaminariは、RailsをはじめとするRubyのWebアプリへページ分割を組み込むライブラリです。問い合わせにpageやperを連鎖し、ビューではpaginateヘルパーでページ移動用のリンクを表示できます。モデルへ専用のコレクション型を持ち込まず、既存の検索条件と組み合わせて使えます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
問い合わせをスコープの連鎖として組み立てる
User.order(:name).page(params[:page]).per(50)のように、並び順や絞り込みへページ番号と1ページ件数を続けて指定できます。結果は通常のAR::Relationとして扱えるため、ページ分割の前後にも別の条件を連鎖できます。
出典:[1]
表示部品と既定値をアプリに合わせて調整する
paginateヘルパーはHTML5のnav要素を含むページリンクを生成します。リンクはEngine内の部分テンプレートから描画されるため、テンプレートを上書きして見た目や動作を調整できます。既定の1ページ件数、最大件数、窓幅、パラメーター名なども設定できます。
出典:[1]
向いている用途
Railsの一覧画面や管理画面へ段階的に導入しやすい
ActiveRecordを使うRailsアプリで、既存の検索・並び替え条件を保ちながら一覧を分割したい場合に向きます。READMEではSinatra、Grape、Mongoidなどへの対応も案内されており、複数のRuby構成で共通したページ分割の考え方を使いたい場合にも候補になります。
出典:[1]
導入前の確認
順序、件数上限、対応版を導入前に確認する
Kaminari自身は問い合わせへ並び順を追加しません。同じ条件でページを移動したときに結果が安定するよう、アプリ側でorderを明示する必要があります。perは既存のlimitを上書きするため、利用者が件数を指定できる画面ではmax_per_pageなどで上限も設けます。
最新READMEはRuby 2.1〜3.3とRails 4.1〜8.0などを対応対象として掲げています。一方、最新のGitHub Releaseはv1.2.2で、Release欄の更新時期と既定ブランチ上の対応表には差があります。採用時は利用中のRuby・Rails版でテストし、変更履歴と依存関係を確認してください。
参考にした公式資料
- [1]Kaminari README at reviewed commit(2026-10-04)
- [2]Kaminari v1.2.2 release(2026-10-04)
編集部からの補足
一覧画面へページ分割を加えるとき、問い合わせ条件をAR::Relationの連鎖として保てる点が魅力です。一方で、安定した表示順をアプリ側で明示し、1ページ件数や最大件数を用途に合わせて制限する設計も同時に確認してください。
3ステップで試す
- 1
Gemfileへ追加する
ActiveRecordのUserモデル(name属性)と一覧用のコントローラー・ERBビューがある既存Railsアプリを前提に、Gemfileへ追加します。
gem 'kaminari' - 2
依存関係を導入する
RailsアプリのルートでBundlerを実行し、Kaminariと必要な依存関係を導入します。
bundle - 3
一覧とページリンクを接続する
1行目は一覧用コントローラーのindexアクションへ、2行目は対応するERBビューへ別々に配置します。一つのシェルコマンドではありません。
@users = User.order(:name).page(params[:page]) <%= paginate @users %>
成長
成長の推移 · 直近30日
8,667 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 25
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- ActiveAdmin9,713 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Rails applicationへ管理画面用Engineを組み込み、resourceと操作をDSLで定義する
Ruby - Bullet7,337 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
ActiveRecordやMongoidのN+1、不要なeager loading、counter cache候補を開発中に検出して通知する
Ruby - CanCanCan5,682 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Railsの認可ルールをAbilityへ集約し、コントローラー・ビュー・検索条件で同じ権限制御を再利用する
Ruby - Draper5,277 Stars
共通タグ 2件 · 共通カテゴリ 1件 · 同じ言語
Rails modelをdecorator/view-modelでwrapし、presentation logicをmodelやglobal helperから分離するRuby library
Ruby - Flutter179,318 Stars
共通タグ 1件 · 共通カテゴリ 2件
Dartの一つのcodebaseからmobile・web・desktop UIを構築するcross-platform SDK
Dart - Angular101,014 Stars
共通タグ 1件 · 共通カテゴリ 2件
component・signal/DI・routing・forms・SSR/hydration・CLIを一つのTypeScript web application platformへ統合する
TypeScript
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。