pagyをインストールする
Gemfile
に以下を追記します。
Gemfile
gem 'pagy', '~> 9.3' # omit patch digit
ターミナルでbundle install
を実行します。
設定ファイルを作成する
上記のページからpagy.rb
ファイルをダウンロードし、config/initializers
に保存します。
セットアップする
application_controller.rb
に以下を追記します。
application_controller.rb
class ApplicationController < ActionController::API
include Pagy::Backend
end
コントローラーを記述する
products_controller.rb
class ProductsController < ApplicationController
def index
@pagy, products = pagy(Product.all, limit: 10)
render json: products
end
end
ヘッダーを追加する
レスポンスヘッダーにcurrent-page
、page-items
、total-pages
、total-count
を追加するために以下の作業を行います。
config/initializers/pagy.rb
の以下のコメントアウトを外します。
pagy.rb
require "pagy/extras/headers"
Pagy::DEFAULT[:headers] = { page: "Current-Page",
limit: "Page-Items",
count: "Total-Count",
pages: "Total-Pages" } # default
次にapplication_controller.rb
に以下を追記します。
application_controller.rb
class ApplicationController < ActionController::API
after_action { pagy_headers_merge(@pagy) if @pagy }
end
参考