我可以将这两条#update_all行合并为一行吗?

时间:2013-02-15 19:36:55

标签: ruby-on-rails ruby

我编写了一个执行以下操作的迁移:

Event.update_all 'tom_cancelled = false', 'tom_cancelled IS NULL'
Event.update_all 'jerry_cancelled = false', 'jerry_cancelled IS NULL'

可以(如果我可以的话,怎么做)我将它们结合起来干燥起来?我会用块吗?

1 个答案:

答案 0 :(得分:2)

除非你想在ActiveRecord中使用循环,否则你不能这样做,但它没有意义,因为你最终会对结果集中的每条记录进行一次UPDATE查询+ 1

以当前方式,无论结果集中有多少条记录,您只运行两个查询。

绝对没有必要抽象更多当前代码。特别是考虑到它在迁移过程中运行。