riding the tumble

goodies to remember

Associations Pagination Support

module AssociationsPaginationSupport
# Use this as an association extension to get instant pagination support for the
# association. Example:
# class User
# has_many :messages, :extend => AssociationsPaginationSupport
# end
#
# To create a paginator in the the controller you need to do something like thiz:
#
# def messages
# user = User.find(params[:id])
# page_num = params[:page]

# per_page = 7
#
# @messages, total_hits = user.messages.with_pagination(per_page, page_num)
# @paginator = Paginator.new(self, total_hits, per_page, page_num)
# end
#
def with_pagination(per_page, page_num)

  page_num = (page_num.to_i.abs.nonzero? || 1)
  offset = (page_num-1)*per_page
  results = find(:all, :offset => offset, :limit => per_page)
  return results, size()
end
end