Ruby on rails rails控制台中分区的奇怪行为

Ruby on rails rails控制台中分区的奇怪行为,ruby-on-rails,ruby,Ruby On Rails,Ruby,2台服务器(安装了相同的gems,完全相同的ruby版本2.2.2p95 发展 Loading development environment (Rails 4.0.13) [1] pry(main)> (1/3).class => Fixnum [2] pry(main)> (1/3) => 0 [3] pry(main)> 生产 Loading production environment (Rails 4.0.13) 2.2.2 :001 >

2台服务器(安装了相同的gems,完全相同的ruby版本
2.2.2p95

发展

Loading development environment (Rails 4.0.13)
[1] pry(main)> (1/3).class
=> Fixnum
[2] pry(main)> (1/3)      
=> 0
[3] pry(main)>
生产

Loading production environment (Rails 4.0.13)
2.2.2 :001 > (1/3).class
 => Rational 
2.2.2 :002 > (1/3)
 => (1/3) 
2.2.2 :003 >

什么?这两个环境之间唯一的区别是一个使用rvm(生产),另一个不使用Ok。问题是由于使用
mathn
模块的依赖项gem,现在尝试找出哪个gem是:)

我无法复制
(1/3)
返回
Rational
对象。也许您在
Gemfile
:production
组中的gem中,或者在一些
if Rails.env.production?
条件逻辑中,有一些不寻常的猴子补丁?!显然,我发现
mathn
模块是在生产环境中加载的,而不是在开发环境中加载的,我怎样才能找到哪个gem需要它呢?@David
mathn
在标准库中,所以它不会在
Gemfile.lock
中。lock文件中没有gem需要它,但服务器手动安装了一些gem(不要问为什么…)因此,我可以依赖于gempath中类似于
grep-rnw.'-e“require'math”
的东西吗?因为这个命令被发现了nothing@kitensei啊,当然!该库实际上将
Integer#/
重新定义为
Integer#quo
的别名。即
1.quo(3)==(1/3)
。你到底在找什么?您可以尝试类似于
bundle show rails
的方法来查看捆绑的gems(可能是rvm gemset?)的文件夹。不管它值多少钱,您并不是第一个因为需要
mathn
而对这一意外的全局变化感到惊讶的人!该库从ruby 2.2开始使用,现在从2.5版(将于下个月发布)开始使用。