diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-13 05:40:22 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-13 05:40:22 +0000 |
commit | ad24c6d756f1fb0f78028f19b7922cc5490d5d74 (patch) | |
tree | e81dbd467fbec09ee66a97b5b852bbd5b7edc36d | |
parent | 7f558cbd05535f80dfb56198c803df09896c202b (diff) | |
download | rails-ad24c6d756f1fb0f78028f19b7922cc5490d5d74.tar.gz rails-ad24c6d756f1fb0f78028f19b7922cc5490d5d74.tar.bz2 rails-ad24c6d756f1fb0f78028f19b7922cc5490d5d74.zip |
Fixed pagination to work with joins #1034 [scott@sigkill.org]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1159 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_controller/pagination.rb | 6 | ||||
-rwxr-xr-x | activerecord/lib/active_record/base.rb | 2 |
3 files changed, 6 insertions, 4 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 4ec1701839..19e037e909 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Fixed pagination to work with joins #1034 [scott@sigkill.org] + * Fixed that *rest parameter in map.connect couldn't accept an empty list #1037 [Dee.Zsombor@gmail.com] * Added :confirm option to link_to_remote just like link_to has #1082 [yrashk@fp.org.ua] diff --git a/actionpack/lib/action_controller/pagination.rb b/actionpack/lib/action_controller/pagination.rb index fd890c53e0..e0fccc0ce0 100644 --- a/actionpack/lib/action_controller/pagination.rb +++ b/actionpack/lib/action_controller/pagination.rb @@ -150,8 +150,8 @@ 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) - model.count(conditions) + def count_collection_for_pagination(model, conditions, joins) + model.count(conditions,joins) end # Returns a collection of items for the given +model+ and +conditions+, @@ -168,7 +168,7 @@ 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]) + count = count_collection_for_pagination(klass, options[:conditions], options[:join]) paginator = Paginator.new(self, count, options[:per_page], page) diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 7ef6532e52..841940897a 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -415,7 +415,7 @@ module ActiveRecord #:nodoc: # Returns the number of records that meets the +conditions+. Zero is returned if no records match. Example: # Product.count "sales > 1" def count(conditions = nil, joins = nil) - tbl_var_name = joins ? table_name[0,1].downcase : "" + tbl_var_name = joins ? table_name[0,1].downcase : "" sql = "SELECT COUNT(*) FROM #{table_name} #{tbl_var_name} " sql << ", #{joins} " if joins add_conditions!(sql, conditions) |