1

Ruby on Rails 用の小さなアプリを開発していて、モデル間の関係について質問があります。

「試合」で互いに対戦する「チーム」があります

テーブルは現在このようになっていますが、マッチ テーブルに変更を加える必要があるかもしれません。

チーム:

 id   | Name
 1    | some-name#1
 2    | some-name#2   
 3    | some-name#3

マッチ

id   | team_id1 | team_id2 | result1 | result2
 1   |     2    |    3     |    -1   |   -1

この例では、ID 2 のチームが ID 3 のチームと対戦します。結果はまだ入力されていないため、両方に「-1」が設定されています。チーム 2 がチーム 3 に「3:7」のスコアで負けた場合、結果 1 は「3」、結果 2 は「7」になります。

チームには多くの試合があり、1 つの試合は 2 つのチームに属します。

Railsで関係をモデル化するにはどうすればよいですか?

4

1 に答える 1

4

team.rb

has_many :matches

一致する.rb

belongs_to :team_one, :foreign_key => "team_id1", :class_name => "Team"
belongs_to :team_two, :foreign_key => "team_id2", :class_name => "Team"

この場合、一致のオブジェクトからチーム 1 の名前とチーム 2 の名前を見つけたいとします。次のようにします。

match = match.find(1)
match.team_one.name ### gives -> some-name#2
match.team_two.name ### gives -> some-name#3
于 2012-09-14T10:03:07.967 に答える