2015-01-05 3 views
2

У меня есть namspaced ресурс, но я хотел бы конкретный вложенный ресурс пути к не-пространству имен контроллера, например:Удалить из имен вложенного ресурса

namespace :admin do 
    resources :posts do # /admin/posts => Admin::PostsController 
    resources :audits, only: [:index] # /admin/posts/1/audits => AuditsController 
    end 
end 

guides state that:

Если вам нужно использовать другое пространство имен контроллеров в пространстве имен , вы можете указать абсолютный путь контроллера, например: get '/ foo' => '/ foo # index'.

но это приводит к «неправильному постоянному имени», потому что рельсы пытаются преобразовать admin//audits в константу.

+0

Почему бы вам не взять ресурс, который вы хотите? – kurenn

+0

Вы могли бы привести пример? Я хочу, чтобы маршрут был вложен, поэтому я не уверен, что вы рекомендуете. –

+0

Ну, если вы просто разрешите что-то вроде этого 'resources: posts do #/admin/posts => Admin :: PostsController Ресурсы: только аудиты: [: index] #/admin/posts/1/auditits => AuditsController end 'он будет создавать маршруты, но опуская пространство имен admin, это то, что вы хотите. У вас могут быть оба маршрута – kurenn

ответ

2

Я в конечном итоге просто разделив его полностью и делать

get 'admin/users/:user_id/audits', to: 'audits#index' 

До сих пор не понимаю цитату из руководств, я предполагаю, что это должно быть неправильным.

+0

У меня была аналогичная проблема, и я нашел этот ответ полезным: https://stackoverflow.com/a/26926185/23723 – Matt

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