Как перенаправить пользователя обратно в форму входа после регистрации в devise? - PullRequest
0 голосов
/ 17 сентября 2018

Я использую Devise для аутентификации пользователей. Однако, когда пользователь регистрируется, ему не говорят подтвердить свою учетную запись, он просто должен это принять.

В моем контроллере приложений у меня есть следующее:

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_action :configure_permitted_parameters, if: :devise_controller?
  before_action :authenticate_user!

  protected

  def configure_permitted_parameters
    attributes = [:first_name, :last_name, :email]
    devise_parameter_sanitizer.permit(:sign_up, keys: attributes)
    devise_parameter_sanitizer.permit(:account_update, keys: attributes)
  end
end

В моем случае, пользователь будет перенаправлен обратно в форму входа в систему, но нет никакого способа сказать ему проверить свою электронную почту. Единственный раз, когда они узнают об этом, это когда они пытаются снова пройти аутентификацию, а затем гем devise по умолчанию говорит им, что им нужно подтвердить свою учетную запись, прежде чем продолжить.

Мне нужно найти способ сделать это после , когда пользователь регистрируется, но до они пытаются войти в систему вручную (некоторые могут даже не делать этого, потому что есть отсутствие инструкций).

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Проверьте устройство Документация .Предположим, у вас есть настройки маршрутов для устройства.

# routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}

# registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController

protected

  def after_sign_up_path_for(resource)
    new_page_path
  end
end
0 голосов
/ 17 сентября 2018

Просто переопределить Devise::RegistrationsController.

# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "my_registrations"}

class MyRegistrationsController < Devise::RegistrationsController
  protected
  # this method would normally sign the user in
  def sign_up(resource_name, resource)
    flash[:alert] = "You need to confirm your account."
  end

  def after_sign_up_path_for(resource)
    new_user_session_path 
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...