diff options
author | miloops <miloops@gmail.com> | 2008-09-15 13:23:50 -0300 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2008-09-15 18:32:05 +0200 |
commit | dc8bf7515de85f5bc28d17e96edf4a3e74a858da (patch) | |
tree | 3bcc577d8a233d6392b1b78c2b14afe928c2e514 /activerecord/lib/active_record | |
parent | 157141b2949b845e372ee703bfd6fba3ffb00415 (diff) | |
download | rails-dc8bf7515de85f5bc28d17e96edf4a3e74a858da.tar.gz rails-dc8bf7515de85f5bc28d17e96edf4a3e74a858da.tar.bz2 rails-dc8bf7515de85f5bc28d17e96edf4a3e74a858da.zip |
When counting grouped records the target should be loaded to return a valid groups count result.
Without this change count_records will group for the count in the query and return erroneous results.
Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#937 state:committed]
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/associations/association_collection.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/associations/association_collection.rb b/activerecord/lib/active_record/associations/association_collection.rb index 8de528f638..afb817f8ae 100644 --- a/activerecord/lib/active_record/associations/association_collection.rb +++ b/activerecord/lib/active_record/associations/association_collection.rb @@ -238,6 +238,8 @@ module ActiveRecord def size if @owner.new_record? || (loaded? && !@reflection.options[:uniq]) @target.size + elsif !loaded? && @reflection.options[:group] + load_target.size elsif !loaded? && !@reflection.options[:uniq] && @target.is_a?(Array) unsaved_records = @target.select { |r| r.new_record? } unsaved_records.size + count_records |