if has_alias_action
return self.alias_action.find options
end
- self.finder(options).order(
+ arel = self.finder(options).order(
self.order_sql(options[:order], options[:direction])
- ).page(options[:page]).per(options[:page_size])
+ )
+ if (ps = self.page_size(options[:page_size])) or options[:page]
+ arel = arel.page(self.page(options[:page])).per(ps)
+ end
+ arel
end
def finder options = {}
end
def page page
- page.to_i
- page = 1 if page < 1
- page
+ pg = page.to_i
+ pg = 1 if pg < 1
+ pg
end
def page_size page_size
- page_size ||= self.default_page_size
- page_size = -1 if page_size < 0
- page_size = self.max_page_size if page_size > self.max_page_size
- page_size
+ ps = (page_size || self.default_page_size).to_i
+ return nil if ps < 0
+ ps = self.max_page_size if ps > self.max_page_size
+ ps
end
def limited?