2

我正在寻找一种方法来更新具有特定条件的所有记录,它们的 cur_val + 100:

我有一个带有idscore字段的表 Suggestions,我希望所有具有特定 id 的条目都能收到分数提升,例如:

Suggestion.where(id: ids_list).update_all(score: score+100)

我怎么做?

4

1 回答 1

3

尝试简单SQL,阅读update_all

Suggestion.where(id: ids_list).update_all('score = score + 100')

但请记住update_all不要触发Active Record回调或验证。

一些技巧:

你可以这样做,Ruby但这非常糟糕:

Suggestion.where(id: ids_list).find_each do |x|
  x.update(score: x.score + 100)
end

这样的事情应该发生在数据库中。

于 2014-09-29T12:20:30.847 回答