Skip to content

Commit

Permalink
Merge [7235] to stable. References #9167 [danger]
Browse files Browse the repository at this point in the history
git-svn-id: http://svn-commit.rubyonrails.org/rails/branches/1-2-stable@7327 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information
NZKoz committed Aug 16, 2007
1 parent 2503fd3 commit e0fd18b
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 1 deletion.
2 changes: 2 additions & 0 deletions activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*

* Make sure has_many uses :include when counting [danger]

* Save associated records only if the association is already loaded. #8713 [blaine]

* Changing the :default Date format doesn't break date quoting. #6312 [bshand, Elias]
Expand Down
Expand Up @@ -138,7 +138,7 @@ def count_records
elsif @reflection.options[:counter_sql]
@reflection.klass.count_by_sql(@counter_sql)
else
@reflection.klass.count(:conditions => @counter_sql)
@reflection.klass.count(:conditions => @counter_sql, :include => @reflection.options[:include])
end

@target = [] and loaded if count == 0
Expand Down
7 changes: 7 additions & 0 deletions activerecord/test/associations/eager_test.rb
Expand Up @@ -271,6 +271,13 @@ def test_eager_with_has_one_dependent_does_not_destroy_dependent
assert_not_nil f.account
assert_equal companies(:first_firm, :reload).account, f.account
end

def test_eager_with_multi_table_conditional_properly_counts_the_records_when_using_size
author = authors(:david)
posts_with_no_comments = author.posts.select { |post| post.comments.blank? }
assert_equal posts_with_no_comments.size, author.posts_with_no_comments.size
assert_equal posts_with_no_comments, author.posts_with_no_comments
end

def test_eager_with_invalid_association_reference
assert_raises(ActiveRecord::ConfigurationError, "Association was not found; perhaps you misspelled it? You specified :include => :monkeys") {
Expand Down
1 change: 1 addition & 0 deletions activerecord/test/fixtures/author.rb
Expand Up @@ -25,6 +25,7 @@ def testing_proxy_target

has_many :hello_posts, :class_name => "Post", :conditions => "posts.body = 'hello'"
has_many :hello_post_comments, :through => :hello_posts, :source => :comments
has_many :posts_with_no_comments, :class_name => 'Post', :conditions => 'comments.id is null', :include => :comments

has_many :other_posts, :class_name => "Post"
has_many :posts_with_callbacks, :class_name => "Post", :before_add => :log_before_adding,
Expand Down

0 comments on commit e0fd18b

Please sign in to comment.