我的lib目录中有3个级别的课程,我试图调用但是我得到了一个未初始化的常量错误。我的类和目录结构如下所示:
文件名:lib / my_module / my_second_module / my_third_module / my_class.rb
module my_module
module my_second_module
module my_third_module
class my_class
def self.something
do something...
end
end
end
end
end
我尝试使用rails控制台调用此类,但它返回'未初始化的常量my_module'。我运行此命令并收到此错误:
MyModule::MySecondModule::MyThirdModule::MyClass.something
此外,我还在config / application.rb
中包含以下内容config.autoload_paths += Dir["#{config.root}/lib/my_module/**/"]
答案 0 :(得分:0)
尝试::MyModule::MySecondModule::MyThirdModule::MyClass.something
答案 1 :(得分:0)
我通过使用另一种方法在lib文件夹中加载我的模块来修复我的问题。出于某种原因,我的方式没有加载我的lib文件:
config.to_prepare do
Dir.glob(File.join(File.dirname(__FILE__), "../lib/my_module/**/*.rb")) do |c|
Rails.configuration.cache_classes ? require(c) : load(c)
end
end