为什么有理数会突然出现在JSON / Rails中

时间:2017-02-23 19:24:10

标签: ruby-on-rails json rational-number

我使用Rails为javascript图表库(High Charts)生成JSON。我可以使用整数运算来计算条形图中的百分比(简化示例):

def to_json
 data.map{|numerator, denominator| numerator * 100 / denominator }
end

这台服务器已经运行了好几年没有问题,但是,在过去的几周内,这种情况偶尔开始失败,因为它生成Rational个号而不是Fixnum(例如。 2700/50代替54)。这会中断,因为浏览器中的JSON解析器无法理解有理数。

修复很简单(在结果上调用to_iround)但我很困惑为什么这个突然在4年后开始发生以及为什么它只发生在一个单独的Passenger实例上我的网络农场上的服务器。网络机器是相同的(据我所知)。

我的四个问题:

  1. 有没有更惯用的方法来计算Ruby中的百分比?
  2. Ruby生成理性而不是fixnum的规则是什么?
  3. 为什么这突然开始发生?
  4. 为什么只会在我的rails服务器的某些实例上发生?
  5. 版本详情:

    • ruby​​ 2.2.2
    • Rails 3.2.22
    • passenger-5.0.21
    • Ubuntu 12.04.5 LTS

0 个答案:

没有答案