Module: Concerns::PaginationController

Instance Method Summary collapse

Instance Method Details

#page_numberObject



14
15
16
17
18
# File 'app/controllers/concerns/pagination_controller.rb', line 14

def page_number
  return 1 unless params[:page].respond_to?(:to_i)
  page = params[:page].to_i.abs
  page == 0 ? 1 : page
end

#paginate(records, options = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'app/controllers/concerns/pagination_controller.rb', line 20

def paginate(records, options = {})
  options.reverse_merge!(page: page_number, per_page: per_page)

  if records.is_a?(Array)
    records.paginate options
  else
    records.page(options[:page]).per_page(options[:per_page])
  end
end

#per_pageObject



30
31
32
33
34
35
36
# File 'app/controllers/concerns/pagination_controller.rb', line 30

def per_page
  [5, 10, 25, 30, 50, 100].each do |i|
    return i if params[:per_page].to_i == i
  end

  10
end