使用满足ActiveRecord条件的查找对象后更新属性

时间:2014-07-18 01:16:24

标签: ruby-on-rails ruby activerecord ruby-on-rails-4

我想找到满足几个条件的对象,然后更新每个对象的属性。问题是“where”方法不适用于此,因为它将结果作为ActiveRecord::Relation对象返回,而不是对象本身,因此update_attributes不起作用。

但是我很困惑,因为Rails 4希望你使用where而不是find,所以我不知道如何实现这一点。你会如何重写这段代码?

Invenborrow.where(inventory_id: inventory_id).where.not(borrow_id: borrow_id).update_attributes(status: "Declined") 

1 个答案:

答案 0 :(得分:0)

使用update_all

Invenborrow.where(inventory_id: inventory_id).where.not(borrow_id: borrow_id).update_all(status: "Declined")