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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 当update_all失败时会发生什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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>增量!> increment_counter>切换!>触摸> update_attribute> update_column> update_counters

猜你在找的Ruby相关文章