From faf3f0c01095cb59d39169855f8a0982c16256ac Mon Sep 17 00:00:00 2001 From: Marcelo Giorgi Date: Sun, 22 Nov 2009 23:27:37 -0200 Subject: [PATCH] AssociationCollection#include? working properly for objects added with build method --- .../associations/association_collection.rb | 2 +- .../associations/has_many_associations_test.rb | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/activerecord/lib/active_record/associations/association_collection.rb b/activerecord/lib/active_record/associations/association_collection.rb index 42b6e5d..dca2cad 100644 --- a/activerecord/lib/active_record/associations/association_collection.rb +++ b/activerecord/lib/active_record/associations/association_collection.rb @@ -332,7 +332,7 @@ module ActiveRecord def include?(record) return false unless record.is_a?(@reflection.klass) load_target if @reflection.options[:finder_sql] && !loaded? - return @target.include?(record) if loaded? + return @target.include?(record) if loaded? || record.new_record? exists?(record) end diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index eee80b2..4c47719 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -1130,5 +1130,10 @@ class HasManyAssociationsTest < ActiveRecord::TestCase client = firm.clients_using_primary_key.create!(:name => 'test') assert_equal firm.name, client.firm_name end -end + def test_include_method_in_association_proxy_should_return_true_for_instance_added_with_build + post = Post.new + comment = post.comments.build + assert post.comments.include?(comment) + end +end -- 1.6.0.4