RoR中有 update_all 方法
如果 update_all 失败,它会返回什么?它会引发异常吗?
例如:
ActiveRecord::Base.transaction do
users = User.active
users.update_all avatar: 'blablablb'
end
答案 0 :(得分:8)
update_all
是跳过验证和回调的众多方法之一。因此,在调用update_all
时,任何ActiveRecord验证都不会运行。
但是,如果update_all
调用不符合数据库级别的约束,或者在数据库中触发异常,则ActiveRecord将抛出ActiveRecord::StatementInvalid
异常并将从update_all
没有返回值,就像任何其他异常一样。
跳过验证的其他ActiveRecord方法包括: