【Rails】 Kaminariを使ってページネーションの実装手順


環境

Rails 5.2.3
Ruby 2.6.5

実装済みイメージ

手順

Gemをインストール

Gemfile.rb
gem 'kaminari'
terminal
$ bundle

ページ数を指定する

方法1:モデルで設定します。
app/models/blog.rb
class Blog < ActiveRecord::Base
  paginates_per 10
end
app/controllers/blogs_controller.rb
class BlogsController < ApplicationController
  def index
    @blogs = @blogs.page(params[:page])
  end
end
方法2:コントローラーで設定します。
app/controllers/blogs_controller.rb
class BlogsController < ApplicationController
  PER = 10

  def index
    @blogs = Blog.page(params[:page]).per(PER)
  end
end

Viewを編集する

app/view/blogs/index.html.erb
<%= paginate @blogs %>

日本語化する

config/locales/ja.yml
ja:
  views:
    pagination:
      first: "&laquo; 最初"
      last: "最後 &raquo;"
      next: "次 &rsaquo;"
      previous: "&lsaquo; 前"
      truncate: "&hellip;"

Bootstrap 4を導入する

以下のコマンドを実行すると、viewファイルを自動的に作成します。
erb以外にhamlとslimも指定できます。

terminal
$ rails g kaminari:views bootstrap4 -e erb

 参考文献

https://github.com/kaminari/kaminari
https://github.com/amatsuda/kaminari_themes