Как мне перенаправить Devise на экран приветствия при первом входе в систему?

#ruby-on-rails #devise

#ruby-on-rails #devise

Вопрос:

Как мне сообщить Devise перенаправить пользователя на одноразовый экран приветствия, когда он только зарегистрировался?

Ответ №1:

Создайте новый контроллер «RegistrationsController» и настройте соответствующий метод:

 class RegistrationsController < Devise::RegistrationsController
  protected

  def after_sign_up_path_for(resource)
    some_special_page
  end
end
  

Если зарегистрированная учетная запись еще не активна, вам необходимо переопределить метод after_inactive_sign_up_path_for.

 class RegistrationsController < Devise::RegistrationsController
  protected

  def after_inactive_sign_up_path_for(resource)
    some_special_page
  end
end
  

Измените config / routes.rb для использования нового контроллера

 devise_for :users, :controllers => { :registrations => "registrations" }
  

Источник: https://github.com/plataformatec/devise/wiki/How-To:-Redirect-after-registration -(регистрация)

Ответ №2:

В контроллере приложения добавьте это:

 def after_sign_up_path_for(resource)
  some_special_page
end
  

По большинству вопросов, связанных с Devise, обратитесь к их Github wiki

Ответ №3:

по умолчанию Devise перенаправляет пользователя в: user_root (если имя вашей модели user)

таким образом, вы можете определить именованный маршрут

 get "/welcome" => "welcomes#index", :as => "user_root"