我制作了一个完整的引擎并将一些插件转换为与引擎一起工作(我将它们放在lib /中)并将它们加载到初始化引擎中.rb
这是结构:
在app / config / 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 / plugin / config / routes.rb)的第二个routes.rb文件中我有这个:
Rails.application.routes.draw do
match '/mailchimp/callback', :to => 'mailchimp#callback', :as => 'mailchimp_unsubscribe'
end
在我的engine.rb中的config / initializers /我把:
require "#{File.dirname(__FILE__)}/../../lib/plugin/config/routes"
现在,当我运行rake app:routes时,我将其作为输出:
help /help(.:format) help#index
login /login(.:format) sessions#new
logout /logout(.:format) sessions#destroy
loadtest /loadtest(.:format) loadtests#index
如何将插件中的路由添加到引擎路由?
答案 0 :(得分:1)
编辑config / application.rb并添加以下行:
config.paths["config/routes"] << Rails.root.join('lib/plugin/config/routes.rb')
它应该有用。
答案 1 :(得分:0)
将代码放在application.rb
中在lib / routes中加载所有* .rb
for rout in Dir[Rails.root.join('lib','routes', '*.{rb,yml}').to_s]
config.paths["config/routes"] << rout
end