Books のように大量のデータを一覧表示する際、
データを小分けにして、
ページをめくるように表示していけたら見やすくなります。
サンプルプログラムでは、GEM kaminari を使用します。
参考リポジトリ: https://github.com/Bonv-dev/book_mgmt/commit/59d0457
Gemfile に、
gem "kaminari" と追記します。
bundle install
一覧画面の 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 を使っている前提で書いています)