在属于另一个模块的类中包含 Singleton 模块时出现 ruby 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
我得到的错误是:
未初始化的常量 对象::SomeClass(名称错误)
我不确定如何告诉 Singleton 模块查找 SomeModule::SomeClass
而不是 Object::SomeClass
When I try to include the Singleton module in a class that itself exists in a module it does not work. Here's an example:
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
and the error I get is:
uninitialized constant
Object::SomeClass (NameError)
I'm not sure how to tell the Singleton module to look for SomeModule::SomeClass
not Object::SomeClass
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题是您在调用 SomeClass 类时没有前置模块名称。添加模块名称以使其正常工作:
The problem is you are calling the SomeClass class without the prepended module name. Add the module name to get it to work: