【发布时间】:2021-04-25 10:11:50
【问题描述】:
我目前正在创建一个 Rails 引擎。到目前为止,引擎有一些新的路线和一些新的控制器。路由工作正常,因为我能够安装它们,将以下内容添加到 config/routes.rb:
mount MyEngine::Engine => '/'
问题出在控制器上。尝试访问我定义的操作时,我得到:
uninitialized constant MyEngine::ApplicationController
我有点惊讶,因为文档表明 app/ 中的所有内容都是从引擎自动加载的。我什至尝试在engine.rb 中显式加载控制器,但无济于事:
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
Dir["#{config.root}/app/controllers/**/"].each do |path|
config.eager_load_paths << path
end
end
end
我很困惑。 app/controllers/ 的内容不是应该由应用程序从引擎自动加载吗?
【问题讨论】:
-
我遇到过类似的问题,它只发生在 Mac 上。在代码编辑器中打开相应的应用控制器并保存即可清除错误。
标签: ruby-on-rails