Вложенные ресурсы Rails и помощники URL - как сократить
В моем файле rout.rb у меня есть следующие ресурсы:
resources :educations do
resources :semesters do
resources :module_assignments do
resources :module_exams do
resources :module_marks
end
end
end
end
Который генерирует этот помощник URL:
logonname_module_assignment_module_exams_path GET /:student/module_assignments/:module_assignment_id/module_exams(.:format) module_exams#index
Есть ли способ сократить это? Он должен перенаправить на тот же контроллер и то же действие. Вместо
logonname_module_assignment_module_exams_path
Я бы предпочел что-то вроде
module_exams_path
Есть ли способ решить это? Мне нужны все URL-помощники (индекс, новый, редактировать, показывать и т. Д.), А не только путь показа.
1 ответ
Решение
Вам не нужно так глубоко гнездиться.
Лично я захожу только на две глубины, это просто облегчает поддержание.
Но это не отвечает на вопрос. Или возможно это делает.
С вашей настройкой. Вы могли бы сделать что-то вроде:
match '/:student/module_assignments/:module_assignment_id/module_exams(.:format)' => 'module_exams#index', :as => :module_exams
Это дает вам module_exams_path
как помощник.