ruby-on-rails-3 – 当所有记录不同时,如何使用更新?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails-3 – 当所有记录不同时,如何使用更新?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用update_all,如果要更新一列30万条记录,全部具有各种不同的值?

我想做的是像:

Model.update_all(:column => [2,33,94,32]).where(:id => [22974,22975,22976,22977])

但不幸的是,这不行,对于30万条目更糟糕.

解决方法

ActiveRecord#update documentation
people = { 1 => { "first_name" => "David" },2 => { "first_name" => "Jeremy" } }
Person.update(people.keys,people.values)

所以在你的情况下:

updates = {22974 => {column: 2},22975 => {column: 33},22976 => {column: 94},22977 => {column: 32}}
Model.update(updates.keys,updates.values)

编辑:只是看看源码,这也是生成n个SQL查询,所以可能不是最好的解决方

原文链接:https://www.f2er.com/ruby/266991.html

猜你在找的Ruby相关文章