From c036caf501c8efc378d72377f3876ad23742f84d Mon Sep 17 00:00:00 2001 From: Emilio Tagua Date: Thu, 14 Oct 2010 15:40:35 -0300 Subject: Use association_class method which returns the reflection class, this method is redefined in polymorphic belongs to associations. --- activerecord/lib/active_record/associations/association_proxy.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/activerecord/lib/active_record/associations/association_proxy.rb b/activerecord/lib/active_record/associations/association_proxy.rb index cb8d8b4a7b..9a9ffe9d62 100644 --- a/activerecord/lib/active_record/associations/association_proxy.rb +++ b/activerecord/lib/active_record/associations/association_proxy.rb @@ -254,8 +254,8 @@ module ActiveRecord return nil unless defined?(@loaded) if !loaded? and (@owner.persisted? || foreign_key_present) - if IdentityMap.enabled? && ActiveRecord.const_defined?(@reflection.class_name) - @target = IdentityMap.get(@reflection.klass, @owner[@reflection.association_foreign_key]) + if IdentityMap.enabled? && association_class + @target = IdentityMap.get(association_class, @owner[@reflection.association_foreign_key]) end @target ||= find_target end @@ -313,6 +313,10 @@ module ActiveRecord def we_can_set_the_inverse_on_this?(record) false end + + def association_class + @reflection.klass + end end end end -- cgit v1.2.3