概要
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 %> |