首页 > 解决方案 > Rails 更新多条记录。如何检查哪个更新失败

问题描述

params[:user_ids] = [1,2,3,4]
users = User.where(id: params[:user_ids]).update_all(:status => "DEACTIVATE")
users.blank?

尝试一次更新多条记录,但在某些情况下找不到 id 或任何其他原因status列未更新。

那么如何获取所有ID,其中未能更新记录。

标签: ruby-on-railsactiverecord

解决方案


实际上有方法no way跟踪失败的记录update_all。因为此方法忽略模型验证和 Active Record 回调。

这个

如果没有找到记录,则.where忽略ids that not present error并返回空白数组。


推荐阅读