2011-09-16 91 views
3

我的形式有以下幾點:奇怪的行爲量設定爲0.5

<%= f.select(:amount, Order::AMOUNT_VALUES, {:blank => false}) %> 

我的模型有:

AMOUNT_VALUES = { '$ 0.50' => 0.5, '$ 1' => 1, '$ 2' => 2, '$ 5' => 5, '$ 10' => 10 } 
    validate :amount_values_to_be_of_certain_values 

    def amount_values_to_be_of_certain_values 
    puts self.amount 
    unless AMOUNT_VALUES.has_value? self.amount 
     errors.add(:amount, 'not a valid field') 
    end 
    end 

如果我選擇0.5並提交表單。表格抱怨說「金額不是有效的字段」。如果我選擇其中一個值,表單提交正常。

看來問題是與以0

開始什麼是錯在這裏小數點?

+0

什麼類型的數量是多少?以及ruby中的屬性類型是什麼? – Augusto

+0

你可以發佈一個日誌與這個請求?你也可以嘗試'self.amount.to_f' – Bohdan

+0

@Augusto,它是整數類型 –

回答

1

如果你在一個整數字段中存儲數量,那麼它將把你放入它的任何浮點數舍入。這就是爲什麼self.amount.to_f是0.0,因爲將0.5放入整數字段將其更改爲0,0.to_f爲0.0。