Class: SimpleCrud::Pagination::KaminariAdapter

Inherits:
Object
  • Object
show all
Includes:
Adapter
Defined in:
lib/simple_crud/pagination/kaminari_adapter.rb

Overview

Instance Method Summary collapse

Instance Method Details

#paginate(controller, relation, options) ⇒ Object



13
14
15
16
# File 'lib/simple_crud/pagination/kaminari_adapter.rb', line 13

def paginate(controller, relation, options)
  records = paginated_records(controller, relation, options)
  controller.render({ json: records }.merge(options))
end

#paginated_records(controller, relation, _options) ⇒ Object

Manual page scope: will_paginate shadows Relation#page when both load.



19
20
21
22
23
24
25
26
27
# File 'lib/simple_crud/pagination/kaminari_adapter.rb', line 19

def paginated_records(controller, relation, _options)
  page = [controller.params[:page].to_i, 1].max
  per_page = page_size(controller)

  relation.limit(per_page).offset(per_page * (page - 1)).extending do
    include Kaminari::ActiveRecordRelationMethods
    include Kaminari::PageScopeMethods
  end
end