method

set_association_single_records

Importance_0
v2.2.1 - Show latest stable - 0 notes - Class: ActiveRecord::AssociationPreload::ClassMethods
set_association_single_records(id_to_record_map, reflection_name, associated_records, key) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File activerecord/lib/active_record/association_preload.rb, line 145
      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
Register or log in to add new notes.