如何使用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)