2016-03-01 20 views
0

這應該只是輕鬆的工作:如何將浮動保存到一個整數列

b = Balance.first 
b.total = 2.20 
b.save #=> 2.2 
b #=> 2 

總的表列是一個整數:integer。我是否需要將表格設置爲浮點數,因爲小數點未註冊?

這是Rails 4的一部分;在提交表單的時候,我在Balance模式:

... 

before_save :balance_to_float 

def balance_to_float 
    self.total = self.total.to_f 
end 

... 

希爾沒有得到浮動。我錯過了Ruby 2.3的東西嗎?

+1

將'total'列設置爲一個浮點數並且應該沒問題 –

+0

嘗試過,但仍未顯示爲浮點數。它不在數據庫中作爲浮點數。即時通訊使用Postgres – Sylar

+1

您將需要遷移舊數據,因爲它們已被轉換爲整數,然後再將該列設置爲浮點數 –

回答

1

您不能在integer列中存儲float列。因爲整數(來自拉丁整數意思是「整體」)是一個可以寫入沒有小數部分的數字。

您必須將您的列類型更改爲floatdecimal(取決於您的需求)。

+0

是的,我不得不重溫我的紅寶石知識並看到了。 – Sylar