OSDN Git Service

t#31470:create pager
[pettanr/pettanr.git] / app / models / artist.rb
index 1da4e38..bef4215 100644 (file)
@@ -74,16 +74,20 @@ class Artist < ActiveRecord::Base
     offset
   end
   
+  def self.list_where
+    'artists.author_id is not null'
+  end
+  
   def self.list page = 1, page_size = self.default_page_size
-    opt = {}
-    opt.merge!(Artist.list_opt)
-    opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
-    opt.merge!({:conditions => ['artists.author_id is not null'], :order => 'artists.created_at desc'})
-    Artist.find(:all, opt)
+    Artist.where(self.list_where()).includes(Artist.list_opt).order('artists.created_at desc').offset((page -1) * page_size).limit(page_size)
+  end
+  
+  def self.list_paginate page = 1, page_size = self.default_page_size
+    Kaminari.paginate_array(Array.new(Artist.where(self.list_where()).count, nil)).page(page).per(page_size)
   end
   
   def self.list_opt
-    {:include => {:author => {}} }
+    {:author => {} }
   end
   
   def self.list_json_opt