定义了fixnums的“兆字节”方法在哪里?据我所知,它不是核心ruby方法,因为它只能在rails中使用。
ruby -e 'puts 5.megabytes'
在默认的rails安装中,它返回:
Loading development environment (Rails 2.3.8)
>> 5.megabytes
=> 5242880
在我的应用程序的某个时刻发生了一些错误,现在兆字节返回了错误的值......
Loading development environment (Rails 2.3.8)
>> 5_000_000
=> 5000000
>> 5.megabytes
=> 5120
>> 5.kilobytes
=> 5
>> 5.bytes
=> 5
我猜一些宝石做了一些非常错误的事情,但我现在很难跟踪它。
知道如何找出问题所在的位置吗?
答案 0 :(得分:6)
问题出现在上帝宝石中,由于未知原因,它在Numeric中覆盖了这些方法。这很容易打破应用程序,因为我有很多基于这些方法的验证。跑
通常不需要在应用程序本身中包含god,但有些人可能为了自动部署...
我阅读了一些关于gem的信息,人们普遍认为由于大量的内存泄漏,它一般都很破碎。有关于此的任何建议吗?
答案 1 :(得分:1)
哎哟。现在我知道为什么我的100.megabytes试图渲染到Flash上传器中,因为它接受字节而不是千字节。在我将神宝石添加到Gemfile后它崩溃了。这确实非常危险。
上帝的另一种选择是Bluepill。 Bluepill是出于对上帝的挫败而创造的。以下是Bluepill创建原因http://asemanfar.com/Why-We-Wrote-Bluepill的一个很好的总结,当然这可以作为gem使用,所以你可以使用它。 GitHub存储库也链接到文章中。
我正在考虑进行切换。谢谢你的抬头!
关于主题不完全完全,因为它涉及字节转换器,但由于它与进程监控有关,而上帝是原因,除了偶然发现这个问题之外,它可能是有用的。
希望这有帮助。