Я хочу скрыть URL-адреса для редактирования пользователей и их профилей за более безопасными и содержательными URL-адресами. Например, я хочу, чтобы /user/13/edit
был /settings/account
и /user/13/profile/edit
был /settings/profile
.Рельсы: Как производить 404 или перенаправлять при нежелательном использовании URL?
Мне это удалось, но для этого мне пришлось загрузить информацию пользователя из разряда current_user
из сеанса. Как так:
# users_controller
def edit
@user = current_user
end
# profiles_controller
def edit
@user = current_user
@profile = @user.profile
end
Но теперь, так как я не могу сравнить @user.id
из params
с current_user
в сессии, как я могу остановить старые URLs (/user/13/edit
и /user/13/profile/edit
) от того годный для использования? Они всегда загружают формы для текущего пользователя, поэтому нет никакого вреда, но мне было бы более комфортно, если бы они только что выпустили ошибку 404 или что-то в этом роде.
Заранее спасибо.
Моя проблема в том, что новые URL-адреса не предоставляют параметры, которые я могу использовать для сравнения. –
Я сделал некоторые изменения, это ближе к тому, что вы ищете? –
Я пробовал адаптировать ваше решение к своему коду, но не смог заставить его работать. Теперь я буду смотреть в плагин. Спасибо за помощь. –