Псевдоним для вложенных ресурсов маршрутов маршрутов - PullRequest
0 голосов
/ 03 июня 2019

У меня есть модель batch_class, и в соответствии с этими статьями ресурсы назначения есть.Routes.rb выглядит следующим образом.

resources :batch_classes do
  member do 
    resources :articles, except: [:index] 
    resources :assignments
 end

end

Проблема в том, что я не получаю нужный URL-адрес.Мой rake routes для редактирования assignments показывает это.

/batch_classes/:id/assignments/:id/edit(.:format)

с псевдонимом edit_assignment_path.Тем не менее, мой ожидаемый маршрут -

/batch_classes/:batch_class_id/assignments/:id/edit(.:format).

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 03 июня 2019

Вы можете иметь вложенные маршруты, просто поместив вложенный ресурс в родительские ресурсы.

resources :batch_classes do
  resources :assignments
end

Тогда у вас наверняка будет маршрут под названием edit_batch_class_assignment_path и Вы можете передать в случаях как edit_batch_class_assignment_path(@batch_class, @assignment)

1 голос
/ 03 июня 2019

Требуемый маршрут может быть достигнут, если вынуть resources :assignments из блока-члена.

resources :batch_classes do
  resources :assignments
  member do 
    #...
  end
end

Просмотр этого документа настоятельно рекомендуется для правильной реализации.

...