gpt4 book ai didi

ruby-on-rails - 如果失败, `update_attribute` 会返回什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:39 25 4
gpt4 key购买 nike

我有以下代码

@user = User.find(params[:id])
if (@user.activation_status == "active")
#some code here
@user.update_attribute('activation_status' ,'inactive') # Line 44
#send mail to user that his account is Acivated
else

end

第 44 行 有可能失败吗?因为数据库内存已满或网络故障。在那种情况下会发生什么?如果这会造成问题,那么避免它的更好方法是什么?如果失败,update_attribute 返回什么?

最佳答案

这是 update_attribute 的来源:

def update_attribute(name, value)
send(name.to_s + '=', value)
save(false)
end

你可以看到它更新了请求的属性然后调用了saveperform_validations设置为 false .因此update_attribute会返回 false如果任何保存回调(例如 before_save )通过返回 false 阻止记录被保存.

如果存在较低级别的错误,例如数据库内存不足,那么我希望数据库驱动程序将其作为异常引发,并将其传递给您的代码。

关于ruby-on-rails - 如果失败, `update_attribute` 会返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3574225/

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