開発環境
ruby 2.6.5
Ruby on Rails 5.2.5
使い方
・gem 'kaminari'
で bundle install
・page(params[:page]).per(10)
が使える
インスタンス = クラス.page(params[:page]).per(10)
とすると
10件のデータがインスタンスに入る
params[:page]
については後述
・一覧表示の下に <%= paginate @tasks %>
を入力して準備完了
一覧表示の下に First Previous 1 2 3 Next Last
というリンクが出現する
・それぞれがリンクになっている
例えば2のリンクを押すとURLに ?page=2
というクエリパラメーターが送られる
・params[:page]
はURLのクエリパラメーターの数字を引っ張るので
リンクを押す度に page(params[:page]).per(10)
の
params[:page]
が選択した数字に変わるので画面が遷移出来る
注意点
・page(params[:page]).per(10)
は all メソッドと同時に使うものではない
・併せて order を使って表示順を変える際には
page(params[:page]).per(10).order(〜)
とする
(原因不明だけど、order を先に持ってくるとテストが上手く行かなくなる)
・params[:page]
は初期値でどうやら1が入るみたいなので
if params[:page].present?
などで条件分岐しなくても大丈夫
参考にさせていただいた記事