Ruby ActiveRecord将所有更新为变量值
我正在寻找一种方法来更新具有特定条件的所有记录,即当前值+100: 我有一个带有id和score字段的表建议,我希望所有具有特定id的条目都能收到分数提升,例如:Ruby ActiveRecord将所有更新为变量值,ruby,activerecord,update-all,Ruby,Activerecord,Update All,我正在寻找一种方法来更新具有特定条件的所有记录,即当前值+100: 我有一个带有id和score字段的表建议,我希望所有具有特定id的条目都能收到分数提升,例如: Suggestion.where(id: ids_list).update_all(score: score+100) 如何做到这一点?试试普通的SQL,阅读以下内容: 但请记住update\u all不触发活动记录回调或验证 一些提示: 您可以在Ruby中执行此操作,但这非常糟糕: Suggestion.where(id: ids
Suggestion.where(id: ids_list).update_all(score: score+100)
如何做到这一点?试试普通的
SQL
,阅读以下内容:
但请记住update\u all
不触发活动记录
回调或验证
一些提示:
您可以在Ruby中执行此操作,但这非常糟糕:
Suggestion.where(id: ids_list).find_each do |x|
x.update(score: x.score + 100)
end
这样的事情应该发生在数据库中。为什么这个答案不被接受?据我所知,这是正确的
Suggestion.where(id: ids_list).find_each do |x|
x.update(score: x.score + 100)
end