Module: Jsonapi::QueryBuilder::Mixins::Paginate

Includes:
Pagy::Backend
Included in:
BaseQuery
Defined in:
lib/jsonapi/query_builder/mixins/paginate.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#pagination_detailsObject (readonly)

Returns the value of attribute pagination_details.



9
10
11
# File 'lib/jsonapi/query_builder/mixins/paginate.rb', line 9

def pagination_details
  @pagination_details
end

Instance Method Details

#paginate(collection, page_params = send(:page_params)) ⇒ ActiveRecord::Relation

Paginates the collection and returns the requested page. Also sets the pagination details that can be used for displaying metadata in the Json:Api response.

Parameters:

  • collection (ActiveRecord::Relation)
  • page_params (Object) (defaults to: send(:page_params))

    Optional explicit pagination params

Returns:

  • (ActiveRecord::Relation)

    Paged collection



16
17
18
19
20
21
22
# File 'lib/jsonapi/query_builder/mixins/paginate.rb', line 16

def paginate(collection, page_params = send(:page_params))
  @pagination_details, records = pagy collection, page: page_params[:number],
                                                  items: page_params[:size],
                                                  outset: page_params[:offset]

  records
end