概要
Gemのkaminariを利用してページネーションを実装する手順。最も基本的な手順は以下の通り。
kaminari
をインストールする- コントローラーに
page
メソッドを記述 - ビューに
paginate
メソッドを記述
基本手順
kaminariのインストール
Gemfileに以下の1行を追加し、bundle install
1 |
gem 'kaminari' |
準備
ダミーデータの準備
200個のPostデータをページネートすることとし、seeds.rb
で初期データを生成する。
標準の表示
コントローラー
1 2 3 4 5 |
class PostsController < ApplicationController def kaminari @posts = Post.all.order(id: "desc") end end |
ビュー
1 2 3 4 5 |
<h1>kaminari test</h1> <% @posts.each do |post| %> <p><%= post.id %> : <%= post.comment %></p> <% end %> |
この状態だと、200個の投稿データが全て表示され、スクロールしなければならなくなる。
ページネーションの追加
コントローラーで、表示するモデルデータにpage
メソッドとper
メソッドを追加。
kaminari
によってparams
にビューで表示しているページが追加されるpage
に引数として表示させるページを渡すper
で1ページあたりの表示数を指定する
1 2 3 4 5 |
class PostsController < ApplicationController def kaminari @posts = Post.all.order(id: "desc").page(params[:page]).per(20) end end |
ビューにpagenate
メソッドを追加し、ページ操作の表示をさせる。
1 2 3 4 5 6 7 |
<h1>kaminari test</h1> <%= paginate @posts %> <% @posts.each do |post| %> <p><%= post.id %> : <%= post.comment %></p> <% end %> |