【发布时间】:2012-12-04 03:21:46
【问题描述】:
我继承了一个项目,其中 ActiveRecord 模型给了我奇怪的行为。到目前为止,这是唯一一个这样做的模型。
car = Car.first
car.respond_to?(:each) # true
我找不到在Car 中定义的each 方法。
我在another post看到你可以找出谁注入了这个方法,所以我试了一下:
car.method(:each) # raises "undefined method `each' for class `Car'
我想将Car 与draper 一起使用,但因为我的实例表现得像一个Enumerable,所以draper 会这样对待它。然而,Draper 不是问题。
我应该怎么做才能弄清楚?
【问题讨论】:
-
发布您的
Car型号代码。 -
不幸的是,我不能在不编辑大部分内容的情况下发布(这可能会违背目的),因为我不允许这样做。我们还有其他方法可以找到吗?无论如何,这是一个相当大的模型,有 1,286 行。
-
好吧,
respond_to?可以被覆盖,并且通常是为了让类在面对method_missing时表现一致,但这只是一种可能的机制,而不是解释。没有代码,我们无能为力。 -
如果文件太大,对它进行二分查找。几乎全部删除。那解决了吗?撤消,将删除的部分分成两半,删除其中之一。如果这有帮助,撤消并删除另一个。否则,保留一半删除。将剩下的分成两半,依此类推。
-
如果您已经解决了问题,您应该在下面发布您的答案,您可以在 48 小时后接受,或者,如果您认为您的问题/答案与未来的访问者无关,您可以完全删除您的问题。请不要只在评论中留下您的答案。
标签: ruby-on-rails ruby