注册设计后如何将用户重定向到登录表单?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了注册设计后如何将用户重定向到登录表单?相关的知识,希望对你有一定的参考价值。
我正在使用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
gem告诉他们需要在继续之前确认他们的帐户。
我需要在用户注册后找出一种方法,但在他们尝试手动登录之前(有些人可能甚至没有这样做,因为缺少说明)。
答案
检查设计documentation。假设您已为路径设置路线。
# 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
另一答案
只需覆盖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
以上是关于注册设计后如何将用户重定向到登录表单?的主要内容,如果未能解决你的问题,请参考以下文章