如何使用 Rails 中的事务块一次性更新/保存模型的多个实例?
我想更新数百条记录的值;每条记录的值都不同。这不是一个属性的大规模更新情况。Model.update_all(attr: value) 在这里不合适。
MyModel.transaction do
things_to_update.each do |thing|
thing.score = rand(100) + rand(100)
thing.save
end
end
save
似乎发出它自己的事务,而不是将更新批量处理到周围的事务中。我希望所有更新都集中在一笔大交易中。
我怎样才能做到这一点?