ruby NameError при включении модуля Singleton в класс, принадлежащий другому модулю - PullRequest
1 голос
/ 16 февраля 2011

Когда я пытаюсь включить модуль Singleton в класс, который сам существует в модуле, он не работает.Вот пример:

require 'singleton'

module SomeModule
end

class SomeModule::SomeClass
  include Singleton

  def initialize
    @some_variable = 1
  end

  def output
    puts @some_variable
  end
end

SomeClass.instance.output

и полученная ошибка:

неинициализированная константа Object :: SomeClass (NameError)

I'mне уверен, как заставить модуль Singleton искать SomeModule::SomeClass, а не Object::SomeClass

1 Ответ

2 голосов
/ 16 февраля 2011

Проблема в том, что вы вызываете класс SomeClass без имени префиксного модуля.Добавьте имя модуля, чтобы заставить его работать:

SomeModule::SomeClass.instance.output
...