2017-04-07 22 views
0

林用Ruby 2.4.1与5.0.2轨道红宝石Rails的:为十进制不会保存在PostgreSQL的

这里是我的代码:

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.00而不是600.00.6e3在我的PostgreSQL。哦,即时通讯使用数字(8,2)作为其数据类型是decimal, :precision => 8, :scale => 2

我的迁移:

add_column :bills, :total_price, :decimal, :precision => 8, :scale => 2 

任何线索?

+0

'total_price:0.6e3'不是零。 – marmeladze

+0

是的,但是当保存时,它保存为0.00 – AmirolAhmad

+1

请问您可以添加您的迁移和模式/结构文件吗? – marmeladze

回答

1

我认为你有一些验证/回调阻止正确的值写入数据库。仔细检查Bill型号的验证/回调。

+0

你是对的..我忘了我有回调after_create ..谢谢你的提示! – AmirolAhmad