2011-02-26 35 views
5

我只想設置行上的'鎖'列,只要它尚未設置。競爭條件很可能並且性能很重要,因此必須在單個查詢中完成。我認爲解決的辦法應該是這樣的:ActiveRecord中的update_all方法是否返回行數?

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做的行數?

回答

6

是的,它在ActiveRecord中的功能與DataMapper一樣

相關問題