>我有一个活动记录关系,定义如下:
contacts = Contact.where("status = 'waiting'")
然后,我运行一个.each
循环,并根据某些逻辑更改联系人的属性。
我不想对每个联系人进行save!
...循环后如何更好地保存整个联系人关系?
contacts.each do |contact|
//Change properties of contact here
end
如何在包含新属性后保存新更新的联系人活动记录关系?
最有效的方法不能是通过联系人保存进行联系。
update_all使您免于执行循环并为您保存,这是文档。 https://apidock.com/rails/v4.0.2/ActiveRecord/Relation/update_all
您可以使用 activerecord-import。正如您所说,您可以为每个联系人分配所有新值,并最终使用此更新器批量保存更改。