class ActiveRecord::Associations::Builder::HasOne

def self.add_touch_callbacks(model, reflection)

def self.add_touch_callbacks(model, reflection)
  name  = reflection.name
  touch = reflection.options[:touch]
  callback = -> (record) { HasOne.touch_record(record, name, touch) }
  model.after_create callback, if: :saved_changes?
  model.after_create_commit { association(name).reset_negative_cache }
  model.after_update callback, if: :saved_changes?
  model.after_destroy callback
  model.after_touch callback
end