首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换到Zeitwerk时出现未初始化的常量错误

切换到Zeitwerk时出现未初始化的常量错误
EN

Stack Overflow用户
提问于 2020-03-23 21:03:00
回答 2查看 1.7K关注 0票数 1

我目前在jobs目录中有以下文件:

代码语言:javascript
复制
# app/jobs/importer.rb
module Imporer
  def self.valid_importers
    # Do stuff
  end
end

# app/jobs/importer/custom_import_job.rb
class Importer::CustomImportJob < ApplicationJob
  def perform
    # Do stuff
  end
end

使用经典的代码加载器可以正常工作,但是当切换到Zeitwerk时,我在运行rails zeitwerk:check时得到一个NameError: uninitialized constant Importer::CustomImportJob错误。

我尝试将custom_import_job.rb移动到jobs目录,但仍然收到相同的错误。向config.autoload_paths添加app/jobs/importer也无济于事。

是文件结构有问题还是我在Zeitwerk设置中遗漏了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-03-24 04:42:29

在深入研究之后,我意识到我在development.rb中有以下内容

代码语言:javascript
复制
Dir[Rails.root.join('app/jobs/importer/*.rb')].each { |f| require f }

似乎这就是问题的原因。现在一切都按预期进行了,因为它被移除了!

票数 4
EN

Stack Overflow用户

发布于 2020-03-23 22:13:45

如果你的app/job在路径中,你可以看看:

代码语言:javascript
复制
ActiveSupport::Dependencies.autoload_paths

如有必要,通过config/application.rb中的config.autoload_paths进行扩展。

更多调试信息:https://guides.rubyonrails.org/autoloading_and_reloading_constants.html#troubleshooting

  • 停止弹簧。重新启动服务器。可能也会有帮助。

希望这些能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60814100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档