Опираясь на ответ Vapire. Я думаю, что вариант ввода самый простой / лучший.
Поскольку я хочу включить постоянное «Изменить мою регистрацию» в панель навигации, чтобы его можно было вызывать с любой страницы, я также хочу отправить пользователя обратно на страницу, с которой он нажал.
Я нашел простой способ сделать это - переопределить некоторые действия контроллера и использовать переменную сеанса для захвата ссылающегося пути. Использование переменной сеанса сохраняет путь реферера нетронутым, если необходимо перезагрузить форму для исправления ошибок.
routes.rb
devise_for :users, :controllers => {:registrations=>'users/registrations'}
Контроллеры / пользователи / registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
def edit
session[:called_from]=request.referer
super #revert to standard behaviour
end
def after_update_path_for(resource)
session[:called_from] #returns to the page called from
end
end