根据activerecord中的某些给定条件更新表值的最佳方法是什么我试过了
Suggestion.update(:active => 1).where({:item_id => 2, :user_id => 100})
但它不起作用Update方法需要另一个参数(id)如果我这样更改查询,
suggest = Suggestion.where({:item_id => 2, :user_id => 100}).select(:id)
id = suggest.first.id
Suggestion.Update(id,:active => 1)
这完全让我震惊。为什么我必须两次调用db来更新一个记录,在一次更新调用中就可以完成?
最佳答案
Suggestion.update_all({:active => 1}, {:item_id => 2, :user_id => 100})
=>
UPDATE "suggestions" SET "active" = 1 WHERE ("suggestions"."item_id" = 2) AND ("suggestions"."user_id" = 100)