gpt4 book ai didi

ruby-on-rails - 抢救错误并在 rails 中重定向

转载 作者:行者123 更新时间:2023-12-01 03:53:17 24 4
gpt4 key购买 nike

我想在引发错误时重定向用户,但在重定向后似乎调用了救援下方的代码。重定向和返回有什么区别?或者正在发生什么?

在用户模型中:

 def self.find_by_credentials(user_name,password)
user = User.find_by_user_name(user_name)
msg = 'User Not Found'
raise StandardError, msg unless user
msg = 'Invalid Login'
raise StandardError, msg unless user.is_password?(password)

user
end

在 session Controller 中:
def create
begin
user = User.find_by_credentials(
params[:user][:user_name],
params[:user][:password]
)

rescue StandardError => e
flash.now[:errors] = e.message
redirect_to new_user_url
end

login_user!(user)
end

最佳答案

采纳 MrDanA 的建议,我找到了一种我觉得舒服并且有效的风格。

class SessionsController < ApplicationController

def create
begin
@user = User.authenticate!(
params[:user]
)
redirect_to root_url
rescue StandardError => e
flash.now[:error] = "Invalid Login"
render :new
end
end

通过这种方式,我可以将身份验证逻辑留在用户模型中,然后砰的一声让错误决定如何继续。

关于ruby-on-rails - 抢救错误并在 rails 中重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com