Запуск Rails 3.2.1 с devise-2.0.4.gem.
Существует ли эквивалентная конфигурация перенаправления для user / commit, аналогичная "after_sign_in_path_for"?В производственном процессе мне нужно использовать HTTPS, чтобы URL-адрес «Редактировать пользователя» был https://www.xyz.com/users/edit.. Когда я нажимаю «Обновить», происходит правильное обновление, но затем Devise перенаправляет на «http://www.xyz.com/users/edit", что приводит к ошибке загрузки страницы.так как HTTP не поддерживается в рабочей среде.
У меня была похожая проблема со входом / выходом (http://groups.google.com/group/plataformatec-devise/browse_thread/thread/5fafb2a8c90f1d43)), которую я решил, определив after_sign_in_path_for. Но я не вижу подобной конфигурации для редактирования / принятия пользователя.
Затем я попытался принудительно установить HTTPS в маршрутах. Rb:
devise_scope: user do
get "users / edit",: to => "users / registrations # edit",: as =>: edit_user,: protocol => "https"
поставить "users / commit",: controller => "users / registrations",: action => 'commit',: as =>: commit_user,: protocol => "https "
end
И посмотрите это в маршрутизации rake:
edit_user GET /users/edit(.:format) users / registrations # edit {: protocol =>" https "}
commit_user PUT /users/commit(.:format) пользователи / регистрации # commit {: protocol => "https"}
Но Devise все еще направляетв HTTP после действия обновления.
Глядя на registrations_controller.rb, я вижу несколько экземпляров
redirect_to edit_user_path
Поэтому в качестве обходного пути я изменяю его на
redirect_to https://www.xyz.com/user/edit
И это работает.Но я не уверен, что это правильный подход.