普通に勘違いしていたのでメモ
要約
kaminariはページネーション用のgemでページ指定ができるが、ページは0始まりではなく、1始まり。0を指定すると1と同等の動きをする。
環境
rails (5.2.0) kaminari (1.1.1)
実演
kaminari は Model.page({{ページ数}}).per({{1ページ当たりの件数}})
みたいな使い方します。
> User.count (0.4ms) SELECT COUNT(*) FROM `users` => 3
こういうテーブルの状況だとした場合
> User.page(0).per(2).pluck(:id) (0.3ms) SELECT `users`.`id` FROM `users` LIMIT 2 OFFSET 0 => [1, 2]
こうなる、pageを1にしたら idが3
だけ帰ってくるのかと思いきや…
> User.page(1).per(2).pluck(:id) (0.3ms) SELECT `users`.`id` FROM `users` LIMIT 2 OFFSET 0 => [1, 2]
また、1と2。なのでpageで2を選ぶと…
User.page(2).per(2).pluck(:id) (0.3ms) SELECT `users`.`id` FROM `users` LIMIT 2 OFFSET 2 => [3]
3が返却される。うっかりミスをしそうなので備忘録。