我正在寻找一种方法来更新所有记录,条件是cur_val + 100:
我有一个表格 id 和得分字段的建议,我希望所有具有特定ID的条目都能获得分数,例如:
Suggestion.where(id: ids_list).update_all(score: score+100)
我该怎么做?
答案 0 :(得分:2)
尝试普通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
这样的事情应该发生在数据库中。