2012-02-14 28 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