Rails 3 - “to_f”解决了这个问题,但我不确定原因

时间:2011-11-10 07:42:27

标签: ruby-on-rails-3.1 charts floating-point

在我的模型Reports中,我有一个名为:total的属性。在Reports视图中,我显示了这个的最后4个条目:图表上的总属性(来自之前的报告)。我发现当没有上一个条目时,图表不会呈现。当我回去并添加" to_f"在计算中,图表将呈现并只显示" 0"那里没有入口。我很高兴它有效,但这只是一个疯狂的猜测。为什么这样做?

2 个答案:

答案 0 :(得分:3)

你的价值可能是零。我猜你的格式化程序并不热衷于使用nils。但是,nil实现了一个返回0.0的.to_f,格式化程序可以处理它而不会崩溃。

nil.to_f # => 0.0

答案 1 :(得分:1)

如果没有看到你的代码我就能猜到。

我猜你的数据库中的某些报告的report.total是零,你使用的任何代码都不能处理nil值。

例如,nil/2会抛出异常,但nil.to_f/2则不会。