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 方法包括:
关于ruby-on-rails - 当 update_all 失败时会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36971798/