OSS探訪GitHubでログイン

RubyのWebアプリに連鎖可能なスコープと表示ヘルパーでページ分割を組み込む

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
8,667
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/02/20
ページ内ナビ

概要

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][2]

参考にした公式資料

  1. [1]Kaminari README at reviewed commit(2026-10-04)
  2. [2]Kaminari v1.2.2 release(2026-10-04)
編集部からの補足

一覧画面へページ分割を加えるとき、問い合わせ条件をAR::Relationの連鎖として保てる点が魅力です。一方で、安定した表示順をアプリ側で明示し、1ページ件数や最大件数を用途に合わせて制限する設計も同時に確認してください。

3ステップで試す

  1. 1

    Gemfileへ追加する

    ActiveRecordのUserモデル(name属性)と一覧用のコントローラー・ERBビューがある既存Railsアプリを前提に、Gemfileへ追加します。

    gem 'kaminari'
  2. 2

    依存関係を導入する

    RailsアプリのルートでBundlerを実行し、Kaminariと必要な依存関係を導入します。

    bundle
  3. 3

    一覧とページリンクを接続する

    1行目は一覧用コントローラーのindexアクションへ、2行目は対応するERBビューへ別々に配置します。一つのシェルコマンドではありません。

    @users = User.order(:name).page(params[:page]) <%= paginate @users %>
公式READMEで確認

成長

成長の推移 · 直近30日

8,667 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
25

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • ruby
  • rails
  • pagination
  • kaminari
Stars
8,667
Forks
1,072
Watchers
118
Open Issues
51
Contributors
153
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/02/20

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?