2012-02-14 53 views
4

我做了一个完整的发动机和转换一些插件与发动机一起工作(我把他们的lib /),并在初始化engine.rb负荷航线全轨引擎

这是加载它们以下结构:

  • 应用
    • 配置
      • routes.rb中
  • LIB
    • 插件
      • 配置
        • routes.rb中

在应用程序/配置/ routes.rb中我的路由有:

Rails.application.routes.draw do 
    match 'help', :to => 'help#index', :as => 'help' 
    match 'login', :to => 'sessions#new', :as => 'login' 
    match 'logout', :to => 'sessions#destroy', :as => 'logout' 
    match 'loadtest', :to => 'loadtests#index', :as => 'loadtest' 
end 

在(LIB /插件/配置/ routes.rb中)第二的routes.rb文件,我有这样的:

Rails.application.routes.draw do 
    match '/mailchimp/callback', :to => 'mailchimp#callback', :as => 'mailchimp_unsubscribe' 
end 

在我的config /初始化engine.rb /我把:

require "#{File.dirname(__FILE__)}/../../lib/plugin/config/routes" 

现在,当我运行耙应用:路线我得到这个作为输出:

help /help(.:format)  help#index 
    login /login(.:format) sessions#new 
    logout /logout(.:format) sessions#destroy 
loadtest /loadtest(.:format) loadtests#index 

如何添加从插件到引擎路由的路由?

回答

1

编辑的config/application.rb中,加入这一行:

config.paths["config/routes"] << Rails.root.join('lib/plugin/config/routes.rb') 

它应该工作。

0

将代码放在application.rb中

加载所有* .RB在LIB /路线

for rout in Dir[Rails.root.join('lib','routes', '*.{rb,yml}').to_s] 
config.paths["config/routes"] << rout 
end