BootstrapなどのCSSフレームワーク向けに、ソート、ページネーション、行選択、拡張機能を追加するHTMLテーブルプラグイン。
ddnexus/pagy
Rails、Sinatraなどの各種フレームワークで、OFFSET、KEYSET、検索、カレンダー方式のページネーションに対応する、プレーンなRuby向けの汎用ライブラリ。
- スター
- 4,998
- フォーク
- 447
- 未解決の Issue
- 3
- 最終コミット
- 22 時間前
これは何?
Pagyは、Railsに限らず、あらゆるコレクション型や実行環境で使えるRubyのページネーションgemです。OFFSET、COUNTISH、COUNTLESS、KEYSET、KEYNAV、SEARCH、CALENDARなど複数のページネーター方式を備え、データ量やアクセスパターンに合った方法を選べます。
レンダリングでは、Bootstrap、Bulma、または標準スタイルに対応したサーバーサイドのナビゲーションヘルパーを生成できます。また、コンテナ幅に合わせて表示されるクライアントサイドのナビゲーションコンポーネントも用意されています。JSON:API形式のネストされたクエリ文字列と、APIクライアント向けにページネーションのメタデータを含むJSONレスポンスにも対応しています。
Elasticsearch Rails、Meilisearch、Searchkick、Typesense Railsなどの検索バックエンド向けアダプターも含まれています。READMEでは、プロジェクトで使用するメソッドだけをオートロードする方法と、実行中のアプリ内でスタイルをプレビューできる組み込みの開発ツールパネルについて説明しています。
主な機能
- 01OFFSET、KEYSET、COUNTLESS、CALENDARなど、複数のページネーション方式に対応。
- 02Bootstrap、Bulma、標準スタイル向けのサーバーサイドナビゲーションヘルパーを提供。
- 03コンテナ幅に合わせて表示が変わるクライアントサイドのナビゲーションコンポーネントを提供。
- 04APIクライアント向けに、JSON:API形式のリンク構造とJSONメタデータを出力。
- 05Elasticsearch Rails、Meilisearch、Searchkick、Typesense Rails向けのアダプターを提供。
ユースケース
- BootstrapまたはBulmaのスタイルを使って、Railsアプリケーションにページ分割されたリストを追加する。
- JSON:API形式のページネーションリンクを返すJSON APIを構築する。
- RubyでElasticsearch、Meilisearch、またはTypesenseの検索結果をページ分割する。
- カレンダーナビゲーションを使い、年、月、週、日単位で時系列データをページ分割する。
クイックスタート
- 1
コントローラー(例: application_controller.rb)に Pagy::Method を include します
- 2
pagy(:offset, Product.all) でコレクションをページネーションします
収録されている特集
トピック
よくある質問
- pagy とは?
- Rails、Sinatraなどの各種フレームワークで、OFFSET、KEYSET、検索、カレンダー方式のページネーションに対応する、プレーンなRuby向けの汎用ライブラリ。 Pagyは、Railsに限らず、あらゆるコレクション型や実行環境で使えるRubyのページネーションgemです。OFFSET、COUNTISH、COUNTLESS、KEYSET、KEYNAV、SEARCH、CALENDARなど複数のページネーター方式を備え、データ量やアクセスパターンに合った方法を選べます。
- pagy は無料で使えますか?ライセンスは?
- pagy は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- pagy は今もメンテナンスされていますか?
- 活発にメンテナンス中。pagy の最終コミットは 2026年11月6日 です。
- pagy は何に使えますか?
- BootstrapまたはBulmaのスタイルを使って、Railsアプリケーションにページ分割されたリストを追加する。 JSON:API形式のページネーションリンクを返すJSON APIを構築する。 RubyでElasticsearch、Meilisearch、またはTypesenseの検索結果をページ分割する。 カレンダーナビゲーションを使い、年、月、週、日単位で時系列データをページ分割する。
- pagy のインストール方法は?
- コントローラー(例: application_controller.rb)に Pagy::Method を include します pagy(:offset, Product.all) でコレクションをページネーションします
- pagy はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/ddnexus/pagy
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ElasticsearchまたはOpenSearchを使って、Active RecordやMongoidのモデルに高機能な全文検索を追加するRuby on Rails向けライブラリ。
Ruby on Railsは、Rubyでデータベース連携型Webアプリケーションを構築するためのフルスタックMVCフレームワークです。
多くのデータベース向けに、データベース固有のLIMITなどを生成してクエリに物理ページネーションを追加するMyBatisプラグイン。
Active Record向けのRuby gem。モデルを数値IDではなく名前のような読みやすい文字列で検索できるslugを生成します。
オンラインストアを自分で構築し、完全に管理したい開発者向けの、Ruby on Rails製オープンソースeコマースフレームワーク。