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
原文链接:https://www.f2er.com/ruby/268133.html