Как перенаправить пользователя после регистрации при использовании Devise?
Я использую Rails 2.3 и Devise для обработки регистрации пользователя/проверки подлинности.
Мне нужно перенаправить пользователя на внешний сторонний сайт сразу после того, как пользователь подписался на учетную запись. Смотря в коде и в Интернете, но не могу понять, как это сделать.
Как изменить поток разработки для перенаправления пользователя?
Ответы
Ответ 1
Добавьте в свой Application Controller
# Devise: Where to redirect users once they have logged in
def after_sign_up_path_for(resource)
"http://www.google.com" # <- Path you want to redirect the user to.
end
Вот список помощников Devise, которые вы можете использовать http://rdoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers
Надеюсь, что help =)
Ответ 2
Ответ, указанный как " правильный", конкретно относится к знаку после sign_in... Если вы хотите перенаправить пользователя после sign_up, вам необходимо переопределить следующее:
def after_sign_up_path_for(resource)
"http://www.google.com" # <- Path you want to redirect the user to after signup
end
Полную информацию можно найти на вики.
Ответ 3
Если вы используете подтверждения Devise (это означает, что пользователь не активируется сразу после регистрации), вам необходимо перезаписать метод after_inactive_sign_up_path_for
.
# controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
def after_inactive_sign_up_path_for(resource)
"http://somewhere.com"
end
end
Обязательно сообщите разработчику, что вы используете свой регистрационный контроль.
# config/routes.rb
devise_for :users, :controllers => {:registrations => 'registrations'}