初めに
疑問に思ったことや上手くいかなかったことのアウトプットをしています。
自分なりの理解でアウトプットしていきます。初学者なので誤りもあると思います。
その際はご指摘いただけると幸いです。
kaminariとは
Railsでページネーションに便利なgem。
大量のデータを効率的に分割し、ページリングされたビューを返す。
gem 'bootstrap5-kaminari-views'と合わせるとスタイリングも簡単にできる。
手順
1.gemfileにgem 'kaminari'を書く
2.bundle install
3. サーバーの再起動
4.ターミナルでrails g kaminari:config
5.生成されたファイルに1ページあたりのデフォルトのレコード数を書く。
config/initializers/kaminari_config.rb
Kaminari.configure do |config|
config.default_per_page = レコード数
end
6.indexアクションでpageスコープを使用。
※requireに(:page)追加を忘れないこと!
def index
@objects = Object.includes(:user).order(created_at: :desc).page(params[:page])
end
- index.html.erbにページネーションするためのヘルパーを使用。
<%= render @objects %>
<%= paginate @objects %>
renderでデータを呼び出してからpaginateする流れ。
render時点でデフォルト設定のレコード数ずつしか来ないようになってることを忘れずに。
countだとデフォルト設定の数値が返ってくる。
総数をcountしたいならtotal_countメソッドを使用すること!