Sha256: aa52e7bac39d7e7747d217a860b42351a35563e849d0d306753a423109e1e121

Contents?: true

Size: 716 Bytes

Versions: 7

Compression:

Stored size: 716 Bytes

Contents

module ActiveRecord
  module Associations
    class JoinDependency
      def instantiate(rows)
        primary_key = join_base.aliased_primary_key
        parents = {}

        records = rows.map { |model|
          # CPK
          #primary_id = model[primary_key]
          primary_id = if primary_key.kind_of?(Array)
            primary_key.map {|key| model[key]}
          else
            model[primary_key]
          end
          parent = parents[primary_id] ||= join_base.instantiate(model)
          construct(parent, @associations, join_associations, model)
          parent
        }.uniq

        remove_duplicate_results!(active_record, records, @associations)
        records
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
composite_primary_keys-4.0.0.beta8 lib/composite_primary_keys/associations/join_dependency.rb
composite_primary_keys-4.0.0.beta7 lib/composite_primary_keys/associations/join_dependency.rb
composite_primary_keys-4.0.0.beta6 lib/composite_primary_keys/associations/join_dependency.rb
composite_primary_keys-4.0.0.beta5 lib/composite_primary_keys/associations/join_dependency.rb
composite_primary_keys-4.0.0.beta4 lib/composite_primary_keys/associations/join_dependency.rb
composite_primary_keys-4.0.0.beta3 lib/composite_primary_keys/associations/join_dependency.rb
composite_primary_keys-4.0.0.beta2 lib/composite_primary_keys/associations/join_dependency.rb