この記事では、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: '...'
【参考】