Skip to content
Browse files

Lookup the class at runtime, not when the association is built

Trying to lookup the parent class when the association is being built
runs the risk of generating uninitialized constant errors because
classes haven't been fully defined yet. To work around this we look up
the class at runtime through the `association` method.

Fixes #10197.
  • Loading branch information...
1 parent 07e489c commit 2a8994122588a2bafb8cf052f2ca1a49a2b758d6 @pixeltrix pixeltrix committed
Showing with 2 additions and 2 deletions.
  1. +2 −2 activerecord/lib/active_record/associations/builder/belongs_to.rb
4 activerecord/lib/active_record/associations/builder/belongs_to.rb
@@ -71,8 +71,8 @@ def belongs_to_touch_after_save_or_destroy_for_#{name}
old_foreign_id = attribute_was(foreign_key_field)
if old_foreign_id
- reflection_klass = #{reflection.klass}
- old_record = reflection_klass.find_by(reflection_klass.primary_key => old_foreign_id)
+ klass = association(#{name.inspect}).klass
+ old_record = klass.find_by(klass.primary_key => old_foreign_id)
if old_record
old_record.touch #{options[:touch].inspect if options[:touch] != true}

1 comment on commit 2a89941

Ruby on Rails member

Nice :+1:

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