Rails如何更新所有记录的列为零的记录?

时间:2012-03-24 22:10:16

标签: ruby-on-rails ruby ruby-on-rails-3

我想为udtraekkesinfo不等于NULL或NIL的所有记录设置udtraekkes(datetime)为NULL。我的型号名称是Konkurrencer。

如何更新rails控制台中的konkurrencers记录?

3 个答案:

答案 0 :(得分:3)

我认为你需要update_all方法。 Documentation

答案 1 :(得分:0)

  

Konkurrencer.update_all({udtraekkes:nil},“udtraekkesinfo IS NOT NULL”)

答案 2 :(得分:0)

在Rails 4.0.13中,  我用这种语法测试过它可能会在rails 3中为你做同样的事情。

Model.where(conditions).update_all(:column_name=> nil)
where conditions are filtered condition to fetch the each record and update_all will operate on those record, you can update one or more column based on your requirement. 

您的需求代码将是。

Konkurrencer.where(:udtraekkes=> nil).update_all(:udtraekkes=> nil)