2011-11-10 57 views
0

在我的模型報告中,我有一個名爲total的屬性。在「報告」視圖中,我在圖表上顯示最後4項:total屬性(來自之前的報告)。我發現當沒有以前的條目時,圖表不會呈現。當我回去並將「to_f」添加到計算中時,圖表會呈現,並且在沒有條目的地方顯示「0」。我很高興它的工作,但它只是一個瘋狂的猜測。爲什麼這個工作?Rails 3 - 「to_f」修復了這個問題,但我不確定爲什麼

回答

3

您的值可能爲零。我猜你的格式化程序不喜歡使用nils。但是,nil實現了一個返回0.0的.to_f,格式化程序可以在不崩潰的情況下處理它。

nil.to_f # => 0.0 
+0

酷,這正是發生了什麼事。以前的參賽作品是零。另一個問題,有什麼其他方法,如「to_f」和「to_i」? – FattRyan

+0

有.to_s字符串,.to_a數組,.to_set(如果適用)。它根據你處理的對象而有所不同。 – zoomix

+0

你可以像OBJECT.methods.select {| method |方法[0,2] =='到'}來查找。像nil.methods.select {| method |方法[0,2] =='到'}或'a'.methods.select {| method |方法[0,2] =='到'}或[:a] .methods.select {| method |方法[0,2] =='到'} – zoomix

1

沒有看到你的代碼中所有我能做的就是猜測。

我猜你的report.total爲零的數據庫中的一些報告,無論你用什麼代碼來使圖表無法處理零值。

例如,nil/2將拋出異常,但nil.to_f/2不會。

相關問題