Это на самом деле не закончено, но, возможно, это поможет вам или кому-то еще сдвинуться с места.
Я сосредотачиваюсь только на том, как структурировать отношения между командамии спички.Я полагаю, что, по крайней мере, часть решения заключается в использовании полиморфной ассоциации, а часть, возможно, будет самостоятельным объединением.Я клянусь, что это прямо передо мной, и я не вижу этого.
Делая шаги ребенка здесь, предполагая, что у вас есть такой стол для вашего стола Матчей ...
id | home_team_id | away_team_id | home_team_score | away_team_score
Вы можетеустановите это в своих моделях с этими ассоциациями:
class Match
belongs_to :home_team, :class_name => :team
belongs_to :away_team, :class_name => :team
end
class Team
has_many :home_matches, :foreign_key => :home_team_id, :class_name => :matches
has_many :away_matches, :foreign_key => :away_team_id, :class_name => :matches
end
Очевидная проблема состоит в том, что есть две взаимосвязи, когда действительно должна быть только одна.Вот почему я думаю, что полиморфная ассоциация может помочь, но это немного запутанно.
См. Руководство по Rails по полиморфным ассоциациям и посмотрите, поможет ли это вам увидеть то, что я не могу.