diff options
author | Tarmo Tänav <tarmo@itech.ee> | 2008-08-26 03:01:24 +0300 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-08-25 21:23:35 -0700 |
commit | a445cdd8840c4e99c40c6d5b15ab380d39a56be3 (patch) | |
tree | 1d9e7ee98e9607fd635f1743fa6c6bf507ba297e /activerecord/test/cases/associations/has_one_through_associations_test.rb | |
parent | 2dbda11945507a0541d61d13b8c564121c1cd362 (diff) | |
download | rails-a445cdd8840c4e99c40c6d5b15ab380d39a56be3.tar.gz rails-a445cdd8840c4e99c40c6d5b15ab380d39a56be3.tar.bz2 rails-a445cdd8840c4e99c40c6d5b15ab380d39a56be3.zip |
Load the first and not the last has_one result when doing join-based eager loading
This matters when the has_one is defined with an order in which case
there is an expectation that the first one will be loaded.
[#904 state:resolved]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
Diffstat (limited to 'activerecord/test/cases/associations/has_one_through_associations_test.rb')
-rw-r--r-- | activerecord/test/cases/associations/has_one_through_associations_test.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_one_through_associations_test.rb b/activerecord/test/cases/associations/has_one_through_associations_test.rb index ed24794444..b61a3711e3 100644 --- a/activerecord/test/cases/associations/has_one_through_associations_test.rb +++ b/activerecord/test/cases/associations/has_one_through_associations_test.rb @@ -91,4 +91,14 @@ class HasOneThroughAssociationsTest < ActiveRecord::TestCase assert_not_nil assert_no_queries {members[0].sponsor_club} end + def test_has_one_through_nonpreload_eager_loading_through_polymorphic_with_more_than_one_through_record + Sponsor.new(:sponsor_club => clubs(:crazy_club), :sponsorable => members(:groucho)).save! + members = assert_queries(1) do + Member.find(:all, :include => :sponsor_club, :conditions => ["members.name = ?", "Groucho Marx"], :order => 'clubs.name DESC') #force fallback + end + assert_equal 1, members.size + assert_not_nil assert_no_queries { members[0].sponsor_club } + assert_equal clubs(:crazy_club), members[0].sponsor_club + end + end |