5

没有很多具体的代码,这只是模糊的,但我会提供我能提供的。

给定一个 rails 引擎,一个基本引擎而不是在其自己的空间中的可安装引擎,我如何使引擎中的方法作为应用程序控制器的 before_filter 对应用程序可用?

我一直在查看 Devise 代码,因为我想要的与 Devise 的经验相似,但我承认我不明白我正在经历的很多事情。

如果我将include Myengine::Mymodule应用程序控制器放入我希望有可用于过滤的方法的位置,我可以做到这一点,但我希望可以只使用这些方法而不必包含模块。

这是尝试将 Rails 应用程序转变为可供多个 Rails 应用程序使用的引擎的最新障碍,任何有关正确命名空间、模块配置等的处理的指导,都值得赞赏。

4

1 回答 1

5

如果我理解正确,您可以使用初始化程序,例如:

module MyEngine
    class Engine < Rails::Engine
        initializer  "myengine.load_helpers" do
            ActiveSupport.on_load(:action_controller) do
                include MyEngine::Helpers
            end
        end
    end
end
于 2011-09-06T17:31:44.370 回答