Rails .megabytes方法返回错误的值

mdr*_*iel 2 ruby ruby-on-rails

定义了fixnums的"兆字节"方法在哪里?据我所知,它不是核心ruby方法,因为它只能在rails中使用.

ruby -e 'puts 5.megabytes'
Run Code Online (Sandbox Code Playgroud)

在默认的rails安装中,它返回:

Loading development environment (Rails 2.3.8)
>> 5.megabytes
=> 5242880
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的某些时候发生了一些错误,现在兆字节返回错误的值...

Loading development environment (Rails 2.3.8)
>> 5_000_000
=> 5000000
>> 5.megabytes
=> 5120
>> 5.kilobytes
=> 5
>> 5.bytes
=> 5
Run Code Online (Sandbox Code Playgroud)

我猜一些宝石做了一些非常错误的事情,但我现在很难跟踪它.

知道如何找出问题所在的位置吗?

mdr*_*iel 6

问题出现在神宝石中,由于未知原因,它在Numeric中覆盖了这些方法.这很容易打破应用程序,因为我有很多基于这些方法的验证.跑

通常不需要在应用程序本身中包含god,但有些人可能为了自动部署...

我读了一些关于gem的信息,人们普遍认为由于大量的内存泄漏,它一般都很破碎.对此有何建议?