我有一个Gem我正在尝试编写我有多个文件来定义我的模块的类。结构如下所示:
/root_path
|- lib/
| |- my_module/
| |- lib/
| |- some_class.rb
| |- another_class.rb
|- my_module.rb
在我定义的/root_path/my_module.rb
文件中:
module MyModule
class << self
attr_accessor :something
end
self.something = 'xyz'
end
在/root_path/lib/my_module/lib/some_class.rb
文件中,我想要打印模块something
变量中的内容,如下所示:
module MyModule
class SomeClass
class << self
def do_stuff
puts MyModule.something
end
end
end
end
但是,当我运行我的规范测试时,我收到以下消息:
未定义的方法`某事&#39;对于MyModule:模块
我在这里做错了什么?
我添加了require ./lib/my_module
并将模块代码更改为:
module MyModule
@@something
def something
@@something
end
def something=(something)
@@something = something
end
end
虽然有效,但感觉不对。
答案 0 :(得分:1)
您可能忘记了require 'my_module'
中的lib/my_module/lib/some_class.rb
。