一种从引擎到应用程序添加before_filter的方法

时间:2011-09-06 16:44:20

标签: ruby-on-rails ruby-on-rails-3 plugins module rails-engines

如果没有很多具体的代码,这只是模糊的,但我会尽我所能。

考虑到rails引擎,基本引擎而不是自己空间中的可安装引擎,如何将应用程序中的方法作为应用程序控制器的before_filter提供给应用程序?

我一直在查看Devise代码,因为我想要的是与我对Devise的体验相似,但我承认我并不理解我所经历的很多内容。

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

这是尝试将rails应用程序转换为多个rails应用程序使用的引擎的最新障碍,并且对获取正确命名空间,模块配置等的任何指导表示赞赏。

1 个答案:

答案 0 :(得分: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