module WillPaginate::ActiveRecord::Pagination

Public Instance Methods

page(num) click to toggle source
# File lib/will_paginate/active_record.rb, line 140
def page(num)
  rel = scoped.extending(RelationMethods)
  pagenum = ::WillPaginate::PageNumber(num.nil? ? 1 : num)
  per_page = rel.limit_value || self.per_page
  rel = rel.offset(pagenum.to_offset(per_page).to_i)
  rel = rel.limit(per_page) unless rel.limit_value
  rel.current_page = pagenum
  rel
end
paginate(options) click to toggle source
# File lib/will_paginate/active_record.rb, line 124
def paginate(options)
  options  = options.dup
  pagenum  = options.fetch(:page) { raise ArgumentError, ":page parameter required" }
  per_page = options.delete(:per_page) || self.per_page
  total    = options.delete(:total_entries)

  count_options = options.delete(:count)
  options.delete(:page)

  rel = limit(per_page.to_i).page(pagenum)
  rel = rel.apply_finder_options(options) if options.any?
  rel.wp_count_options = count_options    if count_options
  rel.total_entries = total.to_i          unless total.blank?
  rel
end