OSDN Git Service

fix: heroku
[pettanr/pettanr.git] / lib / manifest / controller / action / list.rb
index 873755d..4bdbce7 100644 (file)
@@ -28,9 +28,13 @@ module Manifest
           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 = {}
@@ -58,16 +62,16 @@ module Manifest
         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?