【发布时间】:2014-10-12 20:26:19
【问题描述】:
在表user 中有一个列points。
我想增加十进制值。
@user = User.find(@ok.user_id)
@user.points = @user.points + 0.8
@user.save
如果不是+ 0.8 我把+ 1 工作。
我使用的是 Mysql,该列是 DECIMAL。
【问题讨论】:
-
为什么点的列是 varchar 而不是小数?如果你把它用作小数,如果它是一个小数,会更有意义!
-
好的。我已经改成十进制但是还不行
-
你能提供比
it doesn't work更多的细节吗?@user.points.class有什么用? -
请不要使用
m.p = m.p + n; m.save来增加列值,在数据库中进行操作以避免竞争条件和丢失数据。 -
@muistooshort 我该怎么做?
标签: mysql ruby-on-rails ruby ruby-on-rails-4