Маршруты по умолчанию Rails 3 с контроллерами в пользовательских каталогах

Мне нужно создать маршрут по умолчанию для моего приложения:

match '/:controller(/:action(/:id))'

Дело в том, что мои контроллеры лежат в разных папках, вот так:

/myapp/app/controller/admin/base_controller.rb 

Однако Rails, похоже, не распознает эти контроллеры с моим маршрутом по умолчанию, однако он распознает контроллер, если он находится в «myapp/app/controller/some_controller.rb».


person mendi    schedule 14.11.2011    source источник


Ответы (1)


Я думаю, что вам нужно добавить пространство имен для каждого из ваших каталогов, содержащее маршрут по умолчанию внутри:

namespace :admin do
  match '/:controller(/:action(/:id))'
end

namespace :something_else do
  match '/:controller(/:action(/:id))'
end

Вероятно, вы могли бы сделать это программно, проверив структуру каталогов, используя классы Dir и File. В любом случае я бы не советовал использовать маршруты по умолчанию, если у вас нет веских причин для этого.

person Kyle    schedule 14.11.2011