ruby-on-rails - 切换到 Zeitwerk 时出现未初始化的常量错误
问题描述
我目前在目录中有以下文件jobs
:
# 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
使用经典代码加载器可以正常工作,但是在切换到 ZeitwerkNameError: uninitialized constant Importer::CustomImportJob
时,运行时出现错误rails zeitwerk:check
。
我尝试移动custom_import_job.rb
到该jobs
目录,但仍然收到相同的错误。添加app/jobs/importer
到config.autoload_paths
也没有帮助。
文件结构有问题还是我在 Zeitwerk 设置中遗漏了什么?
解决方案
经过一番挖掘,我意识到我有以下内容development.rb
:
Dir[Rails.root.join('app/jobs/importer/*.rb')].each { |f| require f }
看来这是问题的原因。现在一切都按预期工作,因为它已被删除!
推荐阅读
- c# - 使用 SDK 创建和更新 AWS Event Bus
- html - 有人可以解释默认值在 CSS 中的工作原理吗,(据说)默认值在添加时会改变布局
- android - android webrtc 崩溃无法用 err 0xfffffff4 实例化编解码器“OMX.qcom.video.decoder.vp8”
- javascript - 我看不到排序的中间结果
- python - 将熊猫中的值移动另一列(python)
- python - 如何将 keras 模型文件加载到 OpenCV 代码中?
- php - SQLSTATE [42S21]:列已存在:1060 列名“id”重复
- node.js - 连接MongoDB进行表达。服务器没有启动
- macos - 交换文件名位置
- json - 如何使用参数作为文件名从 postgres 表创建 json 文件