2011-12-30 55 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