1

试图让我的 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 团队吗?

4

0 回答 0