1

理由を説明してください:

User.first.comments.class => Array
User.first.comments.missing_method => undefined method `missing_method' for []:ActiveRecord::Relation

最初の行のクラスが配列で、もう 1 行がリレーションであるのはなぜですか?

4

2 に答える 2

1

User.first.comments実際には AssociationProxy オブジェクトを返します。メソッドが未定義であり、他の場所に委任されているUser.first.comments.classため、呼び出し時に配列を取得しています。class

Railsの関連付け方法はどのように機能するかを確認してください。

于 2012-09-19T13:29:06.800 に答える
0

メソッド User.first.comments が存在し、戻り値の配列があり、Missing_method が Relation コメントに存在しないためです。コメントは、戻り値の配列を持つ ActiveRecord::Relation メソッドです。

于 2012-09-19T12:45:38.037 に答える