kaminari https://github.com/amatsuda/kaminari というgemを使うことにした。
bundle installしてrails g。
gem 'kaminari'
bundle install
rails g kaminari:config
モデルクラスに一度のリクエストで出力する数を設定しておく。
class Post < ActiveRecord::Base
paginates_per 5
...
end
あとはこんな感じでModel.query().page(params[:page])をつけて書くだけ。
Model.query().page(params[:page]).per(10)見たいな形でモデルに設定した値でなくても取って来れるので、offset,limitみたいな使い方も簡単。
# coding: utf-8
class Post_API < Grape::API
resource :posts do
# http://localhost:3000/api/v1/posts
params do
optional :page, type: Integer, desc: "Page Num"
end
get do
Post.where(published: true).page(params[:page])
end
end
end