method
set_association_single_records
v2.1.0 -
Show latest stable
- Class:
ActiveRecord::AssociationPreload::ClassMethods
set_association_single_records(id_to_record_map, reflection_name, associated_records, key)private
No documentation available.
# File activerecord/lib/active_record/association_preload.rb, line 67
def set_association_single_records(id_to_record_map, reflection_name, associated_records, key)
seen_keys = {}
associated_records.each do |associated_record|
#this is a has_one or belongs_to: there should only be one record.
#Unfortunately we can't (in portable way) ask the database for 'all records where foo_id in (x,y,z), but please
# only one row per distinct foo_id' so this where we enforce that
next if seen_keys[associated_record[key].to_s]
seen_keys[associated_record[key].to_s] = true
mapped_records = id_to_record_map[associated_record[key].to_s]
mapped_records.each do |mapped_record|
mapped_record.send("set_#{reflection_name}_target", associated_record)
end
end
end