当我尝试将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)
我不确定如何告诉Singleton模块查找SomeModule::SomeClass
而不是Object::SomeClass
答案 0 :(得分:2)
问题是您在没有前置模块名称的情况下调用SomeClass类。添加模块名称以使其起作用:
SomeModule::SomeClass.instance.output