Skip to content
Browse files

Dont try to load the record from the db if preloading didn't find any…

…thing
  • Loading branch information...
1 parent 607f945 commit 5562abb4e985dc6f57b0643fc655e93e495602da @lifo lifo committed Mar 31, 2010
View
5 activerecord/lib/active_record/association_preload.rb
@@ -159,6 +159,11 @@ def set_association_single_records(id_to_record_map, reflection_name, associated
association_proxy.__send__(:set_inverse_instance, associated_record, mapped_record)
end
end
+
+ id_to_record_map.each do |id, records|
+ next if seen_keys.include?(id.to_s)
+ records.each {|record| record.send("set_#{reflection_name}_target", nil) }
+ end
end
# Given a collection of ActiveRecord objects, constructs a Hash which maps
View
6 activerecord/test/cases/associations/eager_test.rb
@@ -833,4 +833,10 @@ def test_include_has_one_using_primary_key
end
end
+ def test_preloading_empty_polymorphic_parent
+ t = Tagging.create!(:taggable_type => 'Post', :taggable_id => Post.maximum(:id) + 1, :tag => tags(:general))
+
+ assert_queries(2) { @tagging = Tagging.preload(:taggable).find(t.id) }
+ assert_no_queries { assert ! @tagging.taggable }
+ end
end

0 comments on commit 5562abb

Please sign in to comment.
Something went wrong with that request. Please try again.