Ruby on rails 如何在主应用程序中合并Rails引擎应用程序控制器方法?

Ruby on rails 如何在主应用程序中合并Rails引擎应用程序控制器方法?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,如何将Rails引擎应用程序控制器(其方法)合并到主应用程序中?我需要访问这些引擎控制器方法,我希望在不使用主应用程序ApplicationController中的“包含”的情况下访问这些方法 module MyEngine class Engine < Rails::Engine initializer "myengine.load_helpers" do ActiveSupport.on_load(:action_controller) do

如何将Rails引擎应用程序控制器(其方法)合并到主应用程序中?我需要访问这些引擎控制器方法,我希望在不使用主应用程序ApplicationController中的“包含”的情况下访问这些方法

module MyEngine
  class Engine < Rails::Engine
    initializer  "myengine.load_helpers" do
      ActiveSupport.on_load(:action_controller) do
        include MyEngine::Helpers
      end
    end
  end
end
模块MyEngine
类引擎

上面的内容已经发布了,但我的理解是,助手只能查看,而我需要在控制器中访问它们

我以前为一个名为dynamic_菜单的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
需要“动态菜单”
模块动态菜单
类引擎
所以我想你想要的是

require 'myEngine'
class Engine < Rails::Engine
  initializer "myengine.load_helpers" do |app|
    ActionController::Base.send :include, MyEngine::Helpers
  end
end
需要“myEngine”
类引擎
您希望添加正在使用的.rb文件的require,该文件位于lib中,然后只需要将模块发送到ActionController::Base


看看我的宝石吧,它的性质很简单,也许能给你一些指导。注释,我可以进一步解释。

Ooops,意思是说“没有”,而不是“使用”包含“。用修复程序编辑了我的帖子。所以我肯定想要一个引擎,并希望它能无缝地集成到我的主应用程序中。@C Cole这就更有意义了。我会更新答案