防止ActiveRecord舍入小数

时间:2014-04-19 15:05:10

标签: mysql ruby-on-rails ruby-on-rails-3 activerecord

我有这段代码:

Payment.select('payments.*, (payment.amount * 0.1) as total_amount')

当total_amount等于0.1(在mysql控制台中检查)时,ActiveRecord返回0.如何防止ActiveRecord舍入小数?提前致谢

1 个答案:

答案 0 :(得分:0)

如果您的total_amount数据类型是integer,那么它不会接受浮点值,因此在您的情况下total_amount数据类型需要设置为float

如果您想知道如何将其更改为float,如果您不担心数据丢失,那么我建议rake db:rollback

稍后打开您的create_payments迁移文件并将数据类型编辑为float。并且在此之后不要忘记执行rake db:migrate