1

ActiveRecord モデルが奇妙な動作をしているプロジェクトを継承しました。これは、これまでのところ、このように動作する唯一のモデルです。

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

私が見つけることができるeach定義されたメソッドはありません。Car

誰がメソッドを注入したかを知ることができるという別の投稿を読んだので、試してみました。

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

draperCarで使用したいのですが、私のインスタンスは Enumerable のように動作するため、draper はそれをそのように扱います。ただし、ドレーパーは問題ではありません。

それを理解するにはどうすればよいですか?

4

1 に答える 1

0

私の質問へのコメントは、私がそれを見つけるのに役立ちました! Dmitry のバイナリ検索を使用して原因を突き止めたところ、モデルが使用している gem に問題が見つかりました。gem の Mark Reed がオーバーライドしますrespond_to。したがって、教訓は次のとおりです。responds_toファンキーな場合、おそらくどこかでオーバーライドされています。

于 2012-12-19T05:20:13.903 に答える