method
touch_record
v5.0.0.1 -
Show latest stable
- Class:
ActiveRecord::Associations::Builder::BelongsTo
touch_record(o, foreign_key, name, touch, touch_method)public
No documentation available.
# File activerecord/lib/active_record/associations/builder/belongs_to.rb, line 73
def self.touch_record(o, foreign_key, name, touch, touch_method) # :nodoc:
old_foreign_id = o.changed_attributes[foreign_key]
if old_foreign_id
association = o.association(name)
reflection = association.reflection
if reflection.polymorphic?
klass = o.public_send("#{reflection.foreign_type}_was").constantize
else
klass = association.klass
end
old_record = klass.find_by(klass.primary_key => old_foreign_id)
if old_record
if touch != true
old_record.send(touch_method, touch)
else
old_record.send(touch_method)
end
end
end
record = o.send name
if record && record.persisted?
if touch != true
record.send(touch_method, touch)
else
record.send(touch_method)
end
end
end