Загрузка маршрутов из папки lib в полный движок рельсов - PullRequest
4 голосов
/ 14 февраля 2012

Я сделал полный движок и преобразовал некоторые плагины для совместной работы с движком (я поместил их в lib /) и загрузил их в engine инициализатора. Rb

Это структура:

  • app
    • config
      • rout.rb
  • lib
    • плагин
      • config
        • rout.rb

В маршрутах в приложении / конфиге / маршрутах.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

Во втором файле rout.rb в (lib / plugin / config / rout.rb) у меня есть это:

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

В моем движке.рб в конфиге / инициализаторах / я поставил:

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

Теперь, когда я запускаю rake app: маршруты, я получаю это как вывод:

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

Как я могу добавить маршруты из плагинак трассе двигателя?

Ответы [ 2 ]

1 голос
/ 10 мая 2012

Отредактируйте config / application.rb и добавьте эту строку:

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

Должно работать.

0 голосов
/ 22 апреля 2014

введите код в application.rb

загрузить все * .rb в lib / маршруты

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