Rails检查Devise有没有错误?
Rails check if Devise has any errors?
我正在寻找一种方法来检查 Devise 是否对我的 ApplicationController 中的 before_action 方法有任何错误(无效凭据等)。如果 Devise 没有错误,我只需要 运行 该方法中的代码。
class ApplicationController < ActionController::Base
before_action :foo
def foo
if !devise_errors?
end
end
您的意思是登录错误?你不会只在会话控制器中需要这个吗?
您可以查看即显消息...
但您最好还是签到 Warden:
Warden::Manager.warden_callback do |user, auth, opts|
# code
end
您可以像这样检查凭据错误:
class ApplicationController < ActionController::Base
before_action :foo
def foo
if !devise_errors?
end
..
private
def devise_errors?
login_params = devise_parameter_sanitizer.sanitize(:sign_in)
email = login_params.dig(:email)
password = login_params.dig(:password)
user = User.find_by(email: email)
return true if user.blank?
!user.valid_password?(password)
end
..
end
我正在寻找一种方法来检查 Devise 是否对我的 ApplicationController 中的 before_action 方法有任何错误(无效凭据等)。如果 Devise 没有错误,我只需要 运行 该方法中的代码。
class ApplicationController < ActionController::Base
before_action :foo
def foo
if !devise_errors?
end
end
您的意思是登录错误?你不会只在会话控制器中需要这个吗?
您可以查看即显消息...
但您最好还是签到 Warden:
Warden::Manager.warden_callback do |user, auth, opts|
# code
end
您可以像这样检查凭据错误:
class ApplicationController < ActionController::Base
before_action :foo
def foo
if !devise_errors?
end
..
private
def devise_errors?
login_params = devise_parameter_sanitizer.sanitize(:sign_in)
email = login_params.dig(:email)
password = login_params.dig(:password)
user = User.find_by(email: email)
return true if user.blank?
!user.valid_password?(password)
end
..
end