Permalink
Browse files

Handle polymorphic_type NOT NULL-able columns as well.

  • Loading branch information...
1 parent 1a959ad commit 1c614bcb0fb65f0a5541263deacda498e52f447b @thedarkone thedarkone committed May 21, 2011
@@ -19,7 +19,7 @@ def inverse_reflection_for(record)
def klass
type = owner[reflection.foreign_type]
- type && type.constantize
+ type.presence && type.constantize
end
def raise_on_type_mismatch(record)
@@ -158,6 +158,17 @@ def test_with_condition
assert_not_nil Company.find(3).firm_with_condition, "Microsoft should have a firm"
end
+ def test_polymorphic_association_class
+ sponsor = Sponsor.new
+ assert_nil sponsor.association(:sponsorable).send(:klass)
+
+ sponsor.sponsorable_type = '' # the column doesn't have to be declared NOT NULL
+ assert_nil sponsor.association(:sponsorable).send(:klass)
+
+ sponsor.sponsorable = Member.new :name => "Bert"
+ assert_equal Member, sponsor.association(:sponsorable).send(:klass)
+ end
+
def test_with_polymorphic_and_condition
sponsor = Sponsor.create
member = Member.create :name => "Bert"

0 comments on commit 1c614bc

Please sign in to comment.