123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::Associations::ForeignAssociation

Do not use. This module is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Included In:
Defined in: activerecord/lib/active_record/associations/foreign_association.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#foreign_key_present? ⇒ Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/associations/foreign_association.rb', line 5

def foreign_key_present?
  if reflection.klass.primary_key
    route = reflection.association_route(origin_class: owner.class, destination_class: klass)
    route.reference_origin_key.all? { |key| owner.attribute_present?(key) }
  else
    false
  end
end

Instance Method Details

#nullified_owner_attributes

[ GitHub ]

  
# File 'activerecord/lib/active_record/associations/foreign_association.rb', line 14

def nullified_owner_attributes
  route = reflection.association_route(origin_class: owner.class, destination_class: klass)
  route.reference_destination_key.index_with(nil).merge!(route.destination_fixed_values.transform_values { nil })
end

#set_owner_attributes(record) (private)

Sets the owner attributes on the given record

[ GitHub ]

  
# File 'activerecord/lib/active_record/associations/foreign_association.rb', line 21

def set_owner_attributes(record)
  return if options[:through]

  reflection.association_route(origin_class: owner.class, destination_class: record.class).write(owner, record)
end