Ruby on rails ids批量更新

Ruby on rails ids批量更新,ruby-on-rails,batch-updates,Ruby On Rails,Batch Updates,表中约有10000-20000个对象。我有大约1000个id条目,您想更改一个值。如何正确地做到这一点?我不想使用每一个将是1000次插入。我认为这是不对的 注意,这是正常变异 accounts_closes = Account.where(:alfa_flag => false).pluck(:id) Account.transaction do accounts_closes.each do |account_id| Account.connection.execute

表中约有10000-20000个对象。我有大约1000个id条目,您想更改一个值。如何正确地做到这一点?我不想使用每一个将是1000次插入。我认为这是不对的

注意,这是正常变异

accounts_closes = Account.where(:alfa_flag => false).pluck(:id)

Account.transaction do
  accounts_closes.each do |account_id|
    Account.connection.execute 'UPDATE accounts SET open = false WHERE id = ' + account_id + ';'
  end
end
您可以看看这个,基本上您应该使用它,它为一个表的所有记录构造单个更新查询。如果只需要更新某些记录,可以在更新之前使用where,并将其链接起来,如:

Book.where('title LIKE ?', '%Rails%').update_all(author: 'David')

希望对您有所帮助。

您对任何和所有记录的报价可能与否重复。我只需要换一些。检查问题上的p.s.块,这不完全正确,请参阅我发布的链接,我添加了一个示例,因此如何实现它将更加明显。是的,你是对的。我把可以做得更容易的事情复杂化了。非常感谢。Account.where(:alfa_flag=>false)。全部更新(打开:false)