rails - 使用多个已更改的属性更新活动记录关系

时间:2017-07-28 02:07:35

标签: ruby-on-rails activerecord

我有一个如下定义的活动记录关系:

contacts = Contact.where("status = 'waiting'")

然后我运行.each循环并根据某些逻辑更改联系人的属性。

我不想在每个联系人上做save! ...如何在循环后更好地保存整个联系人关系?

contacts.each do |contact|

        //Change properties of contact here

end

如何在包含新属性后保存新更新的联系人activerecord关系?

最有效的方法是不能通过联系人保存进行联系。

2 个答案:

答案 0 :(得分:1)

update_all使您免于执行循环并为您执行保存,这是文档。 https://apidock.com/rails/v4.0.2/ActiveRecord/Relation/update_all

答案 1 :(得分:0)

您可以使用activerecord-import。如您所说,您可以为每个联系人分配所有新值,最后使用此upsert以批量方式保存更改。