在表 user
中有一列 points
。
我想增加它的小数值。
@user = User.find(@ok.user_id)
@user.points = @user.points + 0.8
@user.save
如果我用 + 1
代替 + 0.8
就可以了。
我正在使用 Mysql,该列是 DECIMAL。
最佳答案
如果你想以一种高效、可靠的方式增加:
User.where(id: @ok.user_id).update_all([ 'points=points+?', 0.8 ])
这避免了竞争条件并且不需要加载模型。这里的缺点是您加载的任何模型都已过时,并且在使用它们之前需要使用 reload
进行更新,因为它们的点数已关闭,但这并不是一件坏事。任何数量的修改都可能在后台进行。
关于mysql - 如何增加十进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388465/