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
- #foreign_key_present? ⇒ Boolean readonly
Instance Method Summary
- #nullified_owner_attributes
-
#set_owner_attributes(record)
private
Sets the owner attributes on the given record.
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
# File 'activerecord/lib/active_record/associations/foreign_association.rb', line 21
def set_owner_attributes(record) return if [:through] reflection.association_route(origin_class: owner.class, destination_class: record.class).write(owner, record) end