Как мне сделать заявление об обновлении, где условие - PullRequest
17 голосов
/ 08 февраля 2012

В Rails 3, как мне обновить атрибут с условием вроде:

Model.where("state == 'decline'").all.update_attribute(:state, 'deny')

Это определенно неправильно, но я рисую пробел о том, как этого добиться.

Ответы [ 2 ]

38 голосов
/ 08 февраля 2012

ActiveRecord :: Relation предоставляет метод update_all.

Model.where(state: 'decline').update_all(state: 'deny')
4 голосов
/ 17 января 2013

Вы также можете связать update_all за пределы области видимости, например:

book.chapters.where(state: 'draft').update_all(state: 'unpublished')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...