我们最近遇到了一个问题,即在进行了一系列提交之后,后端进程无法运行。现在,我们是个不错的男孩和女孩,rake test
每次登记后都跑了,但由于Rails的库加载有些奇怪,这种情况仅在我们以生产模式直接从Mongrel进行运行时发生。
我跟踪了该错误,这是由于一个新的Rails gem覆盖了String类中的一种方法,从而打破了运行时Rails代码中的一种狭义用法。
总之,长话短说,在运行时是否有办法询问Ruby在哪里定义了方法?这样的东西whereami( :foo )
回来了/path/to/some/file.rb line #45
吗?在这种情况下,告诉我它在String类中定义是没有帮助的,因为它被某些库重载了。
我不能保证源代码存在于我的项目中,因此grepping 'def foo'
并不一定能提供我所需要的东西,更不用说我是否有很多东西 def foo
,有时我直到运行时才知道我会使用哪个。