diff options
author | Jon Leighton <j@jonathanleighton.com> | 2011-01-03 13:38:40 +0000 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2011-01-03 16:24:32 -0800 |
commit | a9bed985cfd7d1ae93f475542bb878aa939e1c1e (patch) | |
tree | ddd967ba3ddb08f07dffe3860a489fffa974f5d4 /activerecord/test/cases | |
parent | 99a8d8430f9b819cd3e8cb3aab44cb04ea402532 (diff) | |
download | rails-a9bed985cfd7d1ae93f475542bb878aa939e1c1e.tar.gz rails-a9bed985cfd7d1ae93f475542bb878aa939e1c1e.tar.bz2 rails-a9bed985cfd7d1ae93f475542bb878aa939e1c1e.zip |
When preloading a belongs_to, the target should still be set (to nil) if there is no foreign key present. And the loaded flag should be set on the association proxy. This then allows us to remove the foreign_key_present? check from BelongsToAssociation#find_target. Also added a test for the same thing on polymorphic associations.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/associations/eager_test.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/eager_test.rb b/activerecord/test/cases/associations/eager_test.rb index 2a9351507a..e11f1009dc 100644 --- a/activerecord/test/cases/associations/eager_test.rb +++ b/activerecord/test/cases/associations/eager_test.rb @@ -212,6 +212,15 @@ class EagerAssociationTest < ActiveRecord::TestCase end end + def test_finding_with_includes_on_null_belongs_to_polymorphic_association + sponsor = sponsors(:moustache_club_sponsor_for_groucho) + sponsor.update_attributes!(:sponsorable => nil) + sponsor = assert_queries(1) { Sponsor.find(sponsor.id, :include => :sponsorable) } + assert_no_queries do + assert_equal nil, sponsor.sponsorable + end + end + def test_loading_from_an_association posts = authors(:david).posts.find(:all, :include => :comments, :order => "posts.id") assert_equal 2, posts.first.comments.size |