class ActiveRecord::Reflection::ThroughReflection

def source_reflection_name # :nodoc:

:nodoc:
def source_reflection_name # :nodoc:
  return @source_reflection_name if @source_reflection_name
  names = [name.to_s.singularize, name].collect(&:to_sym).uniq
  names = names.find_all { |n|
    through_reflection.klass._reflect_on_association(n)
  }
  if names.length > 1
    raise AmbiguousSourceReflectionForThroughAssociation.new(
      active_record.name,
      macro,
      name,
      options,
      source_reflection_names
    )
  end
  @source_reflection_name = names.first
end