2011-12-30 17 views
1

有一個簡單的方法:在Rails中更新和保存activerecord字段?

def get_award(user) 
    u = User.find(user).score += 10 
    u.save 
end 

我的問題是,是否有潛在的競爭條件導致用戶get_award兩次,但只得到10分?如何避免它?

+0

更新不正確的..錯字? – 2011-12-30 09:16:01

回答

1

您需要獲取'用戶'實例,更新分數並保存。在你的代碼中,你正在保存類,而不是實例化對象:

def get_award(user) 
    u = User.find(user).score += 10 
    u.save 
end