从经典自动加载器升级到现在使用 zeitwerk 时,自动加载模块时遇到问题。
目前我的模块如下:
# app/lib/configuration/test_configuration
module TestConfiguration
....code here
end
在我的application.rb中我正在使用:
config.paths.add 'app/lib', eager_load: true
这会导致错误:
NameError: uninitialized constant Configuration::TestConfiguration
我知道这个模块在技术上是基于文件结构命名的,所以将其更改为
module Configuration::TestConfiguration
//
end
我仍然收到错误:
uninitialized constant Configuration
我还认为我需要将应用程序中的行更改为
config.eager_load_paths
并删除其中仍然存在的任何require,即:
require "#{Rails.root.join('app', 'lib', 'configuration', 'other_config')}"
感谢大家的帮助!
应该是配置::测试配置
# app/lib/configuration/test_configuration
module Configuration::TestConfiguration
....code here
end