Module: ActiveRecord::AutosaveAssociation

Defined in:
lib/classy-inheritance.rb

Instance Method Summary collapse

Instance Method Details

#save_has_one_association(reflection) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/classy-inheritance.rb', line 50

def save_has_one_association(reflection)
  if (association = association_instance_get(reflection.name)) && !association.target.nil?
    primary_key = reflection.options[:primary_key] || :id  
    if reflection.options[:autosave] && association.marked_for_destruction?
      association.destroy
    elsif new_record? || association.new_record? || association[reflection.primary_key_name] != send(primary_key) || reflection.options[:autosave]
      association[reflection.primary_key_name] = send(primary_key)
      association.save(false)
    end
  end
end