В Rails 3, как мне обновить атрибут с условием вроде:
Model.where("state == 'decline'").all.update_attribute(:state, 'deny')
Это определенно неправильно, но я рисую пробел о том, как этого добиться.
ActiveRecord :: Relation предоставляет метод update_all.
update_all
Model.where(state: 'decline').update_all(state: 'deny')
Вы также можете связать update_all за пределы области видимости, например:
book.chapters.where(state: 'draft').update_all(state: 'unpublished')