为什么这个对象是respond_to:each.atject.method(:each)引发了一个错误

时间:2012-12-17 01:26:58

标签: ruby-on-rails ruby

我继承了一个项目,其中ActiveRecord模型给了我奇怪的行为。到目前为止,这是唯一一种表现出这种方式的模型。

car = Car.first
car.respond_to?(:each) # true

我找不到each中定义的Car方法。

我在another post读到你可以找出谁注入了这个方法,所以我试了一下:

car.method(:each) # raises "undefined method `each' for class `Car'

我想将Cardraper一起使用,但由于我的实例行为类似于Enumerable,因此draper将其视为此类。然而,德雷珀不是问题。

我该怎么做才能搞清楚?

1 个答案:

答案 0 :(得分:0)

我的问题的评论帮助我找到了它!我使用Dmitry的二进制搜索来找出导致它的原因,并在模型中使用的gem中发现了问题。宝石Mark Reed覆盖respond_to。所以经验教训是:如果responds_to很时髦,也许它会在某处被覆盖。