我有一个Rails应用程序我使用update_all
进行更新,但正如我们所知,它正在跳过验证,如何在此update_all
上强行应用验证
答案 0 :(得分:1)
来自API docs (强调我自己)。
如果所有记录与提供的一组条件匹配,则更新所有记录,也可以提供限制和订单。此方法构造单个SQL UPDATE语句并将其直接发送到数据库。 它不会实例化相关模型,也不会触发Active Record回调或验证。
不,在调用update_all
时无法强制验证。 update_all
的目的是批量修改记录而不为每条记录实例化模型实例。必须存在模型实例才能使记录具有针对其调用的验证。