Car*_*ole 2 ruby-on-rails ruby-on-rails-3
如何将Rails引擎ApplicationController(它的方法)合并到主应用程序中?我需要访问这些引擎控制器方法,我想在不使用主应用程序的ApplicationController中的"Include"的情况下执行此操作.
module MyEngine
class Engine < Rails::Engine
initializer "myengine.load_helpers" do
ActiveSupport.on_load(:action_controller) do
include MyEngine::Helpers
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
以上内容发布在一个从引擎到应用程序添加before_filter的方法,但我的理解是帮助程序只能查看,而我需要在我的控制器中访问它们.
之前我做过一个名为dynamic_menu的rails gem
基本上它看起来像
require 'dynamic_menu'
module DynamicMenu
class Engine < Rails::Engine
initializer "dynamic_menu.menu_items" do |app|
ActionController::Base.send :include, DynamicMenu::MenuItems
end
end
end
Run Code Online (Sandbox Code Playgroud)
所以我会假设你想要的那个
require 'myEngine'
class Engine < Rails::Engine
initializer "myengine.load_helpers" do |app|
ActionController::Base.send :include, MyEngine::Helpers
end
end
Run Code Online (Sandbox Code Playgroud)
您想要添加您在lib中使用的.rb文件的要求,然后它只涉及将模块发送到ActionController :: Base
在github上看到我的宝石,它本质上非常简单,并且可以提供一些指导.评论,我可以解释一下.