Ruby on rails Ruby Rails:在postgresql中不会保存为十进制
我使用Ruby 2.4.1和rails 5.0.2 这是我的密码:Ruby on rails Ruby Rails:在postgresql中不会保存为十进制,ruby-on-rails,ruby,postgresql,activerecord,Ruby On Rails,Ruby,Postgresql,Activerecord,我使用Ruby 2.4.1和rails 5.0.2 这是我的密码: total_price = 600.0 o = client.bills.new(client_id: client, total_price: total_price.to_f) #<Bill id: nil, client_id: 21, created_at: nil, updated_at: nil, total_price: 0.6e3, bill_id: nil, discount_price: nil>
total_price = 600.0
o = client.bills.new(client_id: client, total_price: total_price.to_f)
#<Bill id: nil, client_id: 21, created_at: nil, updated_at: nil, total_price: 0.6e3, bill_id: nil, discount_price: nil>
o.save
有什么线索吗?我认为您有一些验证/回调,阻止将正确的值写入数据库。仔细检查
账单
模型中的验证/回调。总价:0.6e3
不是零。是真的。。但是当保存时,它将另存为0.00。您可以添加迁移和架构/结构文件吗?显示o.update\u列的输出(总价:123.45)
。如果这样做有效,则意味着您有一些验证或其他原因阻止正确的数字被输入saved@AndreyDeineko它返回0.12345e3,但仍将其保存为0.00您是对的。。我忘了我在创建后有回调。。谢谢你的提示!
add_column :bills, :total_price, :decimal, :precision => 8, :scale => 2