Permalink
Browse files

Optimize counting of has_many associations by setting the association…

… to empty if the count is 0

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1235 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 3cf4613 commit 56412f4441f0954d3181eafbfb7b60b361e05d11 @dhh dhh committed Apr 23, 2005
Showing with 5 additions and 1 deletion.
  1. +5 −1 activerecord/lib/active_record/associations/has_many_association.rb
@@ -92,13 +92,17 @@ def find_target
end
def count_records
- if has_cached_counter?
+ count = if has_cached_counter?
@owner.send(:read_attribute, cached_counter_attribute_name)
elsif @options[:counter_sql]
@association_class.count_by_sql(@counter_sql)
else
@association_class.count(@counter_sql)
end
+
+ @target = [] and loaded if count == 0
+
+ return count
end
def has_cached_counter?

0 comments on commit 56412f4

Please sign in to comment.