没有很多具体的代码,这只是模糊的,但我会提供我能提供的。
给定一个 rails 引擎,一个基本引擎而不是在其自己的空间中的可安装引擎,我如何使引擎中的方法作为应用程序 Controller 的 before_filter 对应用程序可用?
我一直在查看 Devise 代码,因为我想要的与 Devise 的经验相似,但我承认我不明白我正在经历的很多事情。
如果我输入 include Myengine::Mymodule
,我可以做到这一点在我希望有可用于过滤的方法的应用程序 Controller 中,但我希望可以只使用这些方法而不必包含模块。
这是尝试将 rails 应用程序转变为可供多个 rails 应用程序使用的引擎的最新障碍,任何有关正确命名空间、模块配置等的处理的指导,都值得赞赏。
最佳答案
如果我理解正确,您可以使用初始化程序,例如:
module MyEngine
class Engine < Rails::Engine
initializer "myengine.load_helpers" do
ActiveSupport.on_load(:action_controller) do
include MyEngine::Helpers
end
end
end
end
关于ruby-on-rails - 一种将 before_filter 从引擎添加到应用程序的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323327/