Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Railsで「Kaminari」を使ってページネーションを実装しよう

これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール 第5回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2018/09/14 14:00

 本連載では、Rails開発において開発効率を格段に上げてくれること間違いなしの定番gemについてご紹介しています。前回は、OmniAuthを使ってTwitter連携の機能を実装しました。今回は、「Kaminari」を使ってページネーションを実装します。

目次

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 竹馬 力(チクバ ツトム)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:これだけは押さえておきたい! Rails開発で使えるgemパッケージ/ツール
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5