试图让我的 gem 在 Rails 7 中工作。我已经确认它在 Rails 6.1.4.1(最新)中工作。
在我的引擎的 engine.rb 文件中,我有这个......
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
initializer "my_engine.include_controller" do |app|
ActionController::Base.send :include, MyEngine::MyController
end
end
end
在服务器启动或运行控制台时,我得到...
uninitialized constant MyEngine::MyController (NameError)
我在其命名空间目录中有 gem 控制器,并重申这在 Rails 6.1 中有效。
我也尝试过这些变体,但出现相同的错误......
ActionController::Base.include MyEngine::MyController
ActiveSupport.on_load :action_controller_base do
include MyEngine::MyController
end
如果我将以下内容放在主应用程序的 ApplicationController 中,那么它可以工作......
include MyEngine::MyController
是否有人对如何调用这些钩子有任何见解,或者我应该将此作为错误报告给 Rails 团队吗?