表user
中有一列points
。
我想在其上增加小数值。
@user = User.find(@ok.user_id)
@user.points = @user.points + 0.8
@user.save
如果我+ 0.8
取代+ 1
而不是{{1}}。
我使用的是Mysql,该列是DECIMAL。
答案 0 :(得分:0)
如果您希望以有效,可靠的方式增加:
User.where(id: @ok.user_id).update_all([ 'points=points+?', 0.8 ])
这可以避免竞争条件,并且不需要加载模型。这里的缺点是你加载的任何模型已经过时,需要先用reload
更新,因为它们的点数已经关闭,但这并不是一件坏事。可能在后台进行了许多修改。