module Polyamorous::JoinAssociationExtensions
def self.prepended(base)
def self.prepended(base) base.class_eval { attr_reader :join_type } end
def self.prepended(base)
def self.prepended(base) base.class_eval { attr_reader :join_type } end
def self.prepended(base)
def self.prepended(base) base.class_eval { attr_reader :join_type } end
def build_constraint(klass, table, key, foreign_table, foreign_key)
def build_constraint(klass, table, key, foreign_table, foreign_key) if reflection.polymorphic? super(klass, table, key, foreign_table, foreign_key) .and(foreign_table[reflection.foreign_type].eq(reflection.klass.name)) else super(klass, table, key, foreign_table, foreign_key) end end
def build_constraint(klass, table, key, foreign_table, foreign_key)
def build_constraint(klass, table, key, foreign_table, foreign_key) if reflection.polymorphic? super(klass, table, key, foreign_table, foreign_key) .and(foreign_table[reflection.foreign_type].eq(reflection.klass.name)) else super(klass, table, key, foreign_table, foreign_key) end end
def build_constraint(klass, table, key, foreign_table, foreign_key)
def build_constraint(klass, table, key, foreign_table, foreign_key) if reflection.polymorphic? super(klass, table, key, foreign_table, foreign_key) .and(foreign_table[reflection.foreign_type].eq(reflection.klass.name)) else super(klass, table, key, foreign_table, foreign_key) end end
def initialize(reflection, children, polymorphic_class = nil,
def initialize(reflection, children, polymorphic_class = nil, join_type = Arel::Nodes::InnerJoin) @join_type = join_type if polymorphic_class && ::ActiveRecord::Base > polymorphic_class swapping_reflection_klass(reflection, polymorphic_class) do |reflection| super(reflection, children) self.reflection.options[:polymorphic] = true end else super(reflection, children) end end
def initialize(reflection, children, alias_tracker, polymorphic_class = nil,
def initialize(reflection, children, alias_tracker, polymorphic_class = nil, join_type = Arel::Nodes::InnerJoin) @join_type = join_type if polymorphic_class && ::ActiveRecord::Base > polymorphic_class swapping_reflection_klass(reflection, polymorphic_class) do |reflection| super(reflection, children, alias_tracker) self.reflection.options[:polymorphic] = true end else super(reflection, children, alias_tracker) end end
def initialize(reflection, children, polymorphic_class = nil, join_type = Arel::Nodes::InnerJoin)
def initialize(reflection, children, polymorphic_class = nil, join_type = Arel::Nodes::InnerJoin) @join_type = join_type if polymorphic_class && ::ActiveRecord::Base > polymorphic_class swapping_reflection_klass(reflection, polymorphic_class) do |reflection| super(reflection, children) self.reflection.options[:polymorphic] = true end else super(reflection, children) end end