Метод update_all в ActiveRecord возвращает количество строк? - PullRequest
5 голосов
/ 27 февраля 2011

Я хочу установить столбец «блокировка» в строке, только если он еще не установлен.Условия гонки вероятны, а производительность важна, поэтому это нужно сделать одним запросом.Я думаю, что решение должно выглядеть следующим образом:

class MyModel
  def lock(worker)
    cnt = MyModel.where(id: self.id, lock: nil).update_all(:lock=>worker.name)
    cnt == 1
  end
end

Действительно ли метод update_all возвращает количество произведенных строк, как в DataMapper?

1 Ответ

6 голосов
/ 27 февраля 2011

Да, это происходит в ActiveRecord, как в DataMapper

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...