Sha256: 47f47a868e0f5f6374dcf658f1c01e0cbb1cd307e71a11adcb175f09bae3fde3

Contents?: true

Size: 826 Bytes

Versions: 9

Compression:

Stored size: 826 Bytes

Contents

module ActiveRecord
  module Associations
    module ThroughAssociation
      alias :original_construct_join_attributes :construct_join_attributes

      def construct_join_attributes(*records)
        # CPK
        is_composite = self.source_reflection.polymorphic? ? source_reflection.active_record.composite? : source_reflection.klass.composite?
        if is_composite
          ensure_mutable

          ids = records.map do |record|
            source_reflection.association_primary_key(reflection.klass).map do |key|
              record.send(key)
            end
          end

          cpk_in_predicate(through_association.scope.klass.arel_table, source_reflection.foreign_key, ids)
        else
          original_construct_join_attributes(*records)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
composite_primary_keys-13.0.1 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-13.0.0 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.10 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.9 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.8 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.6 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.5 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.4 lib/composite_primary_keys/associations/through_association.rb
composite_primary_keys-12.0.3 lib/composite_primary_keys/associations/through_association.rb