Вложенные ресурсы 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 как помощник.

Другие вопросы по тегам