Kaminari(カミナリ)とは
実践的なRailsアプリケーションの開発において、ページネーションを実装するためのgem「Kaminari」は、gemの中でも定番中の定番といって良いでしょう。作者は日本人でRubyとRailsのコミッターである松田明さんです。松田さんはRubyistの祭典であるRubyKaigiのオーガナイザーとしても有名です。
ページネーションとは、簡単にいえば、データがたくさんある一覧を「ページ送り」できるようにする機能です。例えば、1000件あるモデルのデータをActiveRecordのallメソッドで取得して全件表示すると一覧が長くなってしまい使い勝手が良くありません。1ページあたり25件など決まった件数を出して、26件目以降のデータの一覧を見たい場合は次のページへ遷移するリンクをクリックすると参照できるようにします。
Kaminariは、Rails Engineとして実装されており、Railsアプリケーションにページネーションの機能を簡単に取り込むことができます。
Railsアプリケーションの準備
ここからは実際にKaminariをRailsアプリケーションに組み込む手順をご紹介します。
実装するにあたり、Ruby/PostgreSQLインストール手順、Railsアプリケーションを作成するまでの手順は省略します。開発環境は以下の通りです。
- macOS Sierra
- Ruby 2.5.1
- Ruby on Rails 5.2.0
- PostgreSQL 10.3
なお、開発環境構築手順は過去のCodeZine連載「サンプルコードで学ぶRuby on Rails 5実践入門」の以下記事をご参考ください。Ruby/Railsのバージョンは古いですが、同じ手順で環境構築できます。
なお、Railsアプリケーション開発までのコマンドのみ列挙しておきます。
mkdir kaminari_sample cd kaminari_sample bundle init bundle --path vendor/bundle -j4 # installは省略可能 bundle exec rails new . -d postgresql