在属于另一个模块的类中包含Singleton模块时的ruby NameError

时间:2011-02-16 16:41:18

标签: ruby module singleton mixins nameerror

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

1 个答案:

答案 0 :(得分:2)

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

SomeModule::SomeClass.instance.output