Сделать url_for сохранить область

В моем приложении Rails мне нужно определить два разных маршрута к некоторым ресурсам. Я пытаюсь использовать scope иметь ограниченные и незакрытые маршруты. Таким образом я определил:

   scope path: '(:prefix)', :prefix => /my/ do
     resources :users
   end

И теперь мои пользователи могут связаться с /my/users/:id или /users/:id paths,

Проблема в том, что мне нужны URL-помощники для предоставления правильных путей в зависимости от того, какой путь я использовал для перехода на страницу. Мне нужна ссылка на /my/users/:id/edit когда я открываю страницу с помощью /my/users/:id и ссылка на /users/:id/edit когда я открою /users/:id, Что еще более важно, мне нужны правильно работающие формы, которые используют url_for помощник, чтобы определить правильное действие. Для вышеуказанного конфига url_for @user генерирует /25/users/25 (когда @user.id == 25).

Вопрос в том, как сделать url_for сохранить область, используемую для достижения страницы?

Или, может быть, вы можете предложить другое решение, позволяющее различным URL-адресам достигать некоторых ресурсов и сохранять пути для интуитивной навигации?

1 ответ

Следующее решило проблему на моей стороне:

get '/some_path' => 'controller#action',  somevar: 'blah'
scope path: '/my/' do
  get '/some_path' => 'controller#action', somevar:'blahblah'
end

Похоже, что если маршруты используют одну и ту же переменную, то url_for использует ее для определения неоднозначности.

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