Sha256: 3c53838ac624a4f60ec5bb800fa1a9b2a6dc9d1ba86431fcdd2c748b1854f198

Contents?: true

Size: 910 Bytes

Versions: 1

Compression:

Stored size: 910 Bytes

Contents

module ActiveRecord
  module Reflection
    class AbstractReflection
      def join_scope(table, foreign_table, foreign_klass)
        predicate_builder = predicate_builder(table)
        scope_chain_items = join_scopes(table, predicate_builder)
        klass_scope       = klass_join_scope(table, predicate_builder)

        key         = join_keys.key
        foreign_key = join_keys.foreign_key

        # CPK
        #klass_scope.where!(table[key].eq(foreign_table[foreign_key]))
        constraint = cpk_join_predicate(table, key, foreign_table, foreign_key)
        klass_scope.where!(constraint)

        if type
          klass_scope.where!(type => foreign_klass.polymorphic_name)
        end

        if klass.finder_needs_type_condition?
          klass_scope.where!(klass.send(:type_condition, table))
        end

        scope_chain_items.inject(klass_scope, &:merge!)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
composite_primary_keys-12.0.10 lib/composite_primary_keys/reflection.rb