从 Classic 迁移到 Zeitwerk 时遇到了一些麻烦。
启用 zeitwerk 和 running 后rails s
,一切似乎都正常。然后在保存 .rb 文件并刷新后,我在尝试从顶层请求文件时看到“未初始化的常量”错误/lib
。
重新加载时配置错误,但我正在挠头试图找出细节。我的印象是拥有一个顶级/lib
文件夹很好,并且require
用于在该目录中加载文件与 Zeitwerk 兼容,但现在我不太确定......关于我出错的想法?
注意:我目前没有设置任何特定eager_load_paths
或autoload_paths
编辑:按照@Xavier的建议更新日志输出
Zeitwerk@rails.main: module CustomModule autovivified from directory *********/app/workers/custom_module
Zeitwerk@rails.main: autoload set for CustomModule::Profiler, to be loaded from *********/app/workers/custom_module/profiler.rb
Zeitwerk@rails.main: autoload set for CustomModule::AnotherProfiler, to be loaded from *********/app/workers/custom_module/another_profiler.rb
NameError - uninitialized constant CustomModule::AttributeParser
Did you mean? NameParserConstants:
app/models/user.rb:180:in `first_name'
app/middleware/catch_json_parse_errors.rb:8:in `call'
app/middleware/decompress_requests.rb:22:in `call'