この記事では、kaminari gemを使ってページング処理(ページネーション)を実装する方法を紹介します。
1. 実行環境
- macOS:12.5.1
- Ruby:3.1.2
- Rails:6.1.7
- kaminari:1.2.2
2. 手順
2-1. kaminari gemのインストール
Gemfileに以下を追記します。
gem 'kaminari'
以下のコマンドを実行してkaminari gemをインストールします。
bundle install
2-2. ページネーションを実装
コントローラーに以下を追記します。
def index
@books = Book.order(:id).page(params[:page])
end
- デフォルトで25件/ページ
- Book.page(params[:page])だと並び順が変わることがあるため、必ず
orderをつける
ビューファイルに以下を追記します。
<%= paginate @books %>
以上でページネーションの実装は完了です。
2-3. 日本語化
kaminariが表示する"First"や"Last"のような表示を日本語化します。
config/locales/ja.ymlに以下を追記します。
ja:
views:
pagination:
first: '最初'
last: '最後'
previous: '前'
next: '次'
truncate: '...'
【参考】