class Amoeba::Macros::HasOne

Public Instance Methods

follow(relation_name, association) click to toggle source
# File lib/amoeba/macros/has_one.rb, line 6
def follow(relation_name, association)
  return if association.is_a?(::ActiveRecord::Reflection::ThroughReflection)

  old_obj = @old_object.__send__(relation_name)
  return unless old_obj

  copy_of_obj = old_obj.amoeba_dup(@options)
  copy_of_obj[:"#{association.foreign_key}"] = nil
  relation_name = remapped_relation_name(relation_name)
  @new_object.__send__(:"#{relation_name}=", copy_of_obj)
end