Skip to content
Browse files

Verify that has_one :through preload respects the :conditions [#2976

…state:resolved]
  • Loading branch information...
1 parent c6db37e commit b79823832e6cd30a9f14f97ffdf1642d4d63d4ea @willbryant willbryant committed with tenderlove Aug 13, 2009
View
12 activerecord/test/cases/associations/has_one_through_associations_test.rb
@@ -84,6 +84,18 @@ def test_has_one_through_eager_loading_through_polymorphic
assert_not_nil assert_no_queries {members[0].sponsor_club}
end
+ def test_has_one_through_with_conditions_eager_loading
+ # conditions on the through table
+ assert_equal clubs(:moustache_club), Member.find(@member.id, :include => :favourite_club).favourite_club
+ memberships(:membership_of_favourite_club).update_attribute(:favourite, false)
+ assert_equal nil, Member.find(@member.id, :include => :favourite_club).favourite_club
+
+ # conditions on the source table
+ assert_equal clubs(:moustache_club), Member.find(@member.id, :include => :hairy_club).hairy_club
+ clubs(:moustache_club).update_attribute(:name, "Association of Clean-Shaven Persons")
+ assert_equal nil, Member.find(@member.id, :include => :hairy_club).hairy_club
+ end
+
def test_has_one_through_polymorphic_with_source_type
assert_equal members(:groucho), clubs(:moustache_club).sponsored_member
end
View
1 activerecord/test/models/member.rb
@@ -4,6 +4,7 @@ class Member < ActiveRecord::Base
has_many :fellow_members, :through => :club, :source => :members
has_one :club, :through => :current_membership
has_one :favourite_club, :through => :membership, :conditions => ["memberships.favourite = ?", true], :source => :club
+ has_one :hairy_club, :through => :membership, :conditions => {:clubs => {:name => "Moustache and Eyebrow Fancier Club"}}, :source => :club
has_one :sponsor, :as => :sponsorable
has_one :sponsor_club, :through => :sponsor
has_one :member_detail

0 comments on commit b798238

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