2013-04-03 3 views
2

В моем приложении Rails мне нужно определить два разных маршрута для некоторых ресурсов. Я пытаюсь использовать scope, чтобы иметь охваченные и не облажаемые маршруты. Таким образом, я определил:make url_for preserve 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-адресам достигать некоторых ресурсов и сохранять пути для интуитивной навигации?

ответ

0

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

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

кажется, что если маршруты одни и те же переменные, то url_for использует его, чтобы различать неоднозначность.