後へ      Topへ      次へ

kaminari: ページネーション

Books のように大量のデータを一覧表示する際、
データを小分けにして、
ページをめくるように表示していけたら見やすくなります。

サンプルプログラムでは、GEM kaminari を使用します。

参考リポジトリ: https://github.com/Bonv-dev/book_mgmt/commit/59d0457

インストール

Gemfile に、
gem "kaminari" と追記します。

bundle install

View

一覧画面の View、
サンプルプログラムでは、
\app\views\books\index.html.erb の適当な場所に
<%= paginate @books %>
を追記します。

対象 (@books) のデータ数に合わせて、
First Previous 1 2 3 Next Last
のようにページを指定するためのリンク群が自動生成されます。

コントローラ

一覧表示のコードを kaminari 用に書き換えます。

サンプルプログラムでは、
絞り込み結果の数をカウントするなどで少々手を加えていますが、
そうでなければ、

@books = @q.result

部分を

@books = @q.result
  .page(params[:page])  # page: 表示指定したページ番号
  .per(10)	        # 1ページのデータ数

などとすればOKです。
(前章の Ransack を使っている前提で書いています)


後へ      Topへ      次へ