1

当我尝试将 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::SomeClassnotObject::SomeClass

4

1 回答 1

2

问题是您调用的 SomeClass 类没有前置模块名称。添加模块名称以使其工作:

SomeModule::SomeClass.instance.output
于 2011-02-16T17:26:10.393 回答