1

「チーム」というモデルに属するモデル「マッチ」があります。チームには多くの試合があります。次のようになります。

 $class Match < ActiveRecord::Base
 belongs_to :home_team, :class_name => "Team"
 belongs_to :away_team, :class_name => "Team"

 class Team < ActiveRecord::Base
 has_many :matches

データベースでは、「マッチ」テーブルに必要な 2 つのフィールド home_team_id と away_team_id を適切に設定しました。私は複数の方法を試しましたが、マッチコントローラーで次のようなことをするたびに:

 @matches = Match.find(:all, :include => :team)
 # Or:
 @matches = Match.where('team.gender = ?', true)

次のエラーが表示されます。

Association named 'team' was not found; perhaps you misspelled it?

協会が機能していないように思えます。何か案は?

4

1 に答える 1

1

team追加した関連付けをまだ追加していないhome_teamためaway_team、ホーム チームとアウェー チームをコードに含めます。または、チーム関連付けを作成します。

もう1つ、ホームチームとアウェイチームのどちらがホームチームかアウェイチームかを知るには、ホームチームまたはアウェイチームに必要な外部キーが1つあり、foreign_keyそれらを識別するためにコードを追加する必要があります。

于 2012-09-13T12:57:01.707 に答える