123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::AssociationRoute::Reverse

Do not use. This class is for internal use only.
Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, AssociationRoute
Instance Chain:
self, AssociationRoute
Inherits: AssociationRoute
  • ::Object
Defined in: activerecord/lib/active_record/association_route.rb

Instance Method Summary

Instance Method Details

#destination_attributes(origin)

The attributes #write would assign to a destination, for building one.

[ GitHub ]

  
# File 'activerecord/lib/active_record/association_route.rb', line 353

def destination_attributes(origin)
  @link.reference_values(origin)
end

#destination_fixed_values

[ GitHub ]

  
# File 'activerecord/lib/active_record/association_route.rb', line 344

def destination_fixed_values
  @link.fixed_values
end

#initialize_keys (private)

[ GitHub ]

  
# File 'activerecord/lib/active_record/association_route.rb', line 358

def initialize_keys
  @origin_key = link.match&.target_key
  @destination_key = link.match&.reference_key
  @reference_origin_key = link.reference&.target_key
  @reference_destination_key = link.reference_key
  @_origin_key = link._match_target_key
  @_destination_key = link._match_reference_key
  @_reference_origin_key = link._target_key
  @_reference_destination_key = link._reference_key
  @constraint_pairs = link.constraints.empty? ? EMPTY_KEY_PAIRS : pairs_for(link.constraints.target_key, link.constraints.reference_key)
end

#origin_fixed_values

[ GitHub ]

  
# File 'activerecord/lib/active_record/association_route.rb', line 340

def origin_fixed_values
  EMPTY_FIXED_VALUES
end

#reference_needs_update?(origin, destination) ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/association_route.rb', line 336

def reference_needs_update?(origin, destination)
  @link.reference_needs_update?(destination, origin)
end

#write(origin, destination, force: true)

[ GitHub ]

  
# File 'activerecord/lib/active_record/association_route.rb', line 348

def write(origin, destination, force: true)
  @link.write_reference(destination, origin, force: force)
end