2012-01-18 4 views

ответ

20

Вы можете сделать это:

routes.rb

require 'application_routes' 
require 'rest_api_routes' 

Библиотека/application_routes.rb

YourApplication::Application.routes.draw do 
    # Application related routes 
end 

Библиотека/rest_api_routes.rb

YourApplication::Application.routes.draw do 
    # REST API related routes 
end 

UPD ATE: (Этот метод был удален из списка Rails)

Рельсы край только что получил большое дополнение, несколько файлов маршрутов:

# config/routes.rb 
draw :admin 

# config/routes/admin.rb 
namespace :admin do 
    resources :posts 
end 

Это пригодиться для разрушения сложных файлов маршрутов в больших приложениях.

+0

Конечно! Спасибо! :-) – lzap

+1

Это работает только в разработке для меня, как только я начинаю кэшировать классы, которые он больше не работает – deb

+0

У нас есть эта настройка и хорошо работает и в производстве. –

6

В Rails3, вы можете установить конфиги в конфигурации/application.rb

config.paths.config.routes.concat Dir[Rails.root.join("config/routes/*.rb")] 
+1

это работало лучше для меня, а не для файлов в маршрутах. Rb – deb

+3

Каков порядок маршрутов с таким подходом? – Robin

+0

@Robin Я экспериментировал в нашем приложении на своей операционной системе OS X. Я помещал числа перед именем файла, а маршруты в «1_routes.rb» приходили до «2_routes.rb», но после того, как я изменил «1» на «3». Но [кажется] (http://stackoverflow.com/questions/7389733/sort-order-in-rubys-dir-entries-method) порядок 'Dir.entries' не гарантируется, поэтому вам, вероятно, понадобится' Dir [...] .sort' полагаться на это. –

3

Rails 3.2.11

config.paths["config/routes"].concat Dir[Rails.root.join("config/routes/*.rb")]

Смежные вопросы