ruby-on-rails - 运行 rake zeitwerk 时出错:使用 Zeitwerk Loader 通过从 Rails 引擎继承一个类作为 Rails 6 应用程序中的 gem 来签入模型
问题描述
我在 Rails 应用程序中使用 Rails 引擎作为 Gem。现在,我在我的 rails 应用程序模型中从 rails 引擎继承了一个类。
1. Rails 应用模型代码
class AppModelOne < EngineGem::EngineClassOne
# body of the class
end
但是rake zeitwerk:check
在终端中运行命令时,我收到了一个错误,即
未初始化的常量 <class:32323332xx> EngineModuleTwo
现在我检查了 EngineClassOne 的 Rails 引擎代码,其中有一个 EngineModuleTwo 的包含语句。
2. Rails 引擎类代码
module EngineGem
class EngineClassOne
include EngineModuleTwo::EngineSubModuleOne
end
end
引擎文件结构:
EngineGem -> |-> app -> models |-> engine_gem -> engine_class_one
| |-> engine_module_two -> engine_sub_module_one
|-> gemspec
为什么它无法加载模块,任何人都可以解释如何在我的 rails 应用程序中使用它时将模块加载到 rails 引擎中吗?
解决方案
推荐阅读
- php - PHP后端验证电话号码
- javascript - React App 和 Chrome DevTools 本地覆盖不起作用
- docker - Linux容器:临时阻止本地端口的命令?
- google-cloud-platform - 通过 Java API 获取 GCS 磁盘使用信息?
- java - Mqtt Paho 客户端使用 RabbitMQ 为每个客户端创建 2 个通道
- python - 将函数传递给装饰器
- r - 我的 testthat 测试通过了 devtools::test() 检查,但在开发 R 包时未通过 devtools::check() 步骤
- c++ - 犰狳库和未定义的行为
- html - 文件选择框在 android 移动浏览器中显示输入类型文件标记的其他文件
- ag-grid - 如何在一行上禁用行组扩展功能?