在Rails 3中,如何使用以下条件更新属性:
Model.where("state == 'decline'").all.update_attribute(:state, 'deny')
这绝对是错误的,但我在如何实现这个目标上画了一个空白。
答案 0 :(得分:38)
ActiveRecord::Relation提供update_all
方法。
Model.where(state: 'decline').update_all(state: 'deny')
答案 1 :(得分:4)
您还可以将update_all
链接到范围,例如:
book.chapters.where(state: 'draft').update_all(state: 'unpublished')