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:

: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