From d49a5fcb4cfe90824337dc3756bae7161cea768b Mon Sep 17 00:00:00 2001 From: Michael Koziarski Date: Thu, 9 Feb 2006 09:17:40 +0000 Subject: * Fix pagination problems when using include * Introduce Unit Tests for pagination * Allow count to work with :include by using count distinct. [Kevin Clark & Jeremy Hopple] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3553 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_controller/pagination.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'actionpack/lib/action_controller/pagination.rb') diff --git a/actionpack/lib/action_controller/pagination.rb b/actionpack/lib/action_controller/pagination.rb index 7e4b4754f2..2f1a1d985c 100644 --- a/actionpack/lib/action_controller/pagination.rb +++ b/actionpack/lib/action_controller/pagination.rb @@ -163,10 +163,11 @@ module ActionController # Returns the total number of items in the collection to be paginated for # the +model+ and given +conditions+. Override this method to implement a # custom counter. - def count_collection_for_pagination(model, conditions, joins) - model.count(conditions,joins) + def count_collection_for_pagination(model, options) + model.count(:conditions => options[:conditions], + :joins => options[:join] || options[:joins], :include => options[:include]) end - + # Returns a collection of items for the given +model+ and +options[conditions]+, # ordered by +options[order]+, for the current page in the given +paginator+. # Override this method to implement a custom finder. @@ -185,12 +186,10 @@ module ActionController def paginator_and_collection_for(collection_id, options) #:nodoc: klass = options[:class_name].constantize page = @params[options[:parameter]] - count = count_collection_for_pagination(klass, options[:conditions], - options[:join] || options[:joins]) - + count = count_collection_for_pagination(klass, options) paginator = Paginator.new(self, count, options[:per_page], page) collection = find_collection_for_pagination(klass, options, paginator) - + return paginator, collection end -- cgit v1.2.3