как настроить этот условный маршрут - PullRequest
0 голосов
/ 22 января 2020

Итак, у меня есть некоторые документы, которые доступны с использованием classi c route

/documents/6

, где 6 - :id документа

Однако этот же документ также может быть подан в одной или нескольких группах

Однако, когда я пытаюсь получить доступ к файлу через групповой ресурс в: groups/3, где 3 - идентификатор, URL при щелчке файл все еще

/documents/6

Я бы хотел, чтобы это было что-то вроде

groups/3/documents/6

, но только когда я получаю доступ к документу из этой группы. ..

Как настроить условный маршрут, чтобы этот вложенный маршрут работал?

1 Ответ

1 голос
/ 22 января 2020

Чтобы иметь оба маршрута для одного и того же документа, вы можете объявить маршрут дважды:

resources :documents
resources :groups do
  resources :documents
end

Они будут маршрутизировать на один и тот же контроллер, но когда используется тот, который с группой - будет добавлено group_id param.

И чтобы сделать эти URL-адреса - используйте помощник, как:

group_document_path(group_id:1, id:123) # => /groups/1/documents/123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...