gpt4 book ai didi

ruby-on-rails - 当 update_all 失败时会发生什么?

转载 作者:行者123 更新时间:2023-12-04 02:07:06 28 4
gpt4 key购买 nike

RoR 中有 update_all 方法

如果 update_all 失败,它会返回什么?它会引发异常吗?

例如:

ActiveRecord::Base.transaction do
users = User.active
users.update_all avatar: 'blablablb'
end

最佳答案

update_all是跳过验证和回调的众多方法之一。因此,在调用 update_all 时,根本不会运行任何 ActiveRecord 验证。 .

但是,如果update_all调用不符合数据库级别的约束,或者以其他方式触发数据库中的异常,则 ActiveRecord 将抛出 ActiveRecord::StatementInvalid异常并将从 update_all 中断没有返回值,就像任何其他异常一样。

其他跳过验证的 ActiveRecord 方法包括:

  • 递减!
  • decrement_counter
  • 增量!
  • 增量计数器
  • 切换!
  • 触摸
  • 更新属性
  • update_column
  • update_counters
  • 关于ruby-on-rails - 当 update_all 失败时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971798/

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