class ActiveRecord::Reflection::PolymorphicReflection
:nodoc:
def constraints
def constraints @reflection.constraints + [source_type_scope] end
def initialize(reflection, previous_reflection)
def initialize(reflection, previous_reflection) super() @reflection = reflection @previous_reflection = previous_reflection end
def join_scopes(table, predicate_builder, klass = self.klass, record = nil) # :nodoc:
def join_scopes(table, predicate_builder, klass = self.klass, record = nil) # :nodoc: scopes = @previous_reflection.join_scopes(table, predicate_builder, klass, record) + super scopes << build_scope(table, predicate_builder, klass).instance_exec(record, &source_type_scope) end
def source_type_scope
def source_type_scope type = @previous_reflection.foreign_type source_type = @previous_reflection.options[:source_type] lambda { |object| where(type => source_type) } end