2010-10-05 2 views
1

Я пытаюсь смоделировать матч по настольному теннису в рельсах. Вот что у меня есть:Как смоделировать матч в настольный теннис в рельсах

игры Модель:
team_1_score
team_2_score
team_1_id
team_2_id

Team Модель:
game_id
player_id

Модель игрока:
Имя

Итак, каждая игра будет состоять из 2 команд (из 1 или 2 игроков в каждой).
Тогда я планировал связать игру с игроком с has_many, через. Я не думаю, что это сработает из-за двух экземпляров команды в каждой игре. Но я действительно не знаю, куда мне идти. Любая помощь будет принята с благодарностью.

+0

Для 'игры', как вы решаете, что такое' team_1', а какая 'team_2'? У вас есть что-то строка 'home_team' и' away_team' или любая другая отличительная особенность? – Swanand

+0

Команда 1 и команда 2 являются произвольными и действуют только как способ объединения игроков в матч. Эти команды могут регулярно и часто меняться. – thargor

ответ

1

Я не уверен, как сделать has_many: через между игроками и игр, но это может быть проще, если вы начинаете с чем-то вроде этого:

Team Model 
id 
name 
has_many :players 
has_many :games 

Player Model 
id 
name 
team_id 
has_one :team 

Тогда игры модель будет иметь что-то вроде (в дополнение к тому, что у вас уже есть):

has_one :team1, :class_name => 'Team' 
has_one :team2, :class_name => 'Team' 
+0

Я не хочу, чтобы игрок был назначен командой, но я хочу, чтобы команда состояла из игроков. Я по сути хочу иметь возможность создать команду у игроков. Но я буду работать с тем, что вы дали мне, и посмотреть, смогу ли я это понять. Спасибо – thargor

+0

Ну, вы могли бы представить еще одну таблицу под названием «team_players», которая имеет только внешние ключи, связывающие игроков с командами. Это даст вам гибкость при назначении игроков более чем одной команде. (К сожалению, я не могу форматировать это право) TeamPlayer модель: team_id player_id belongs_to: команда belongs_to: игрок модель игрока has_many: команды,: через =>: team_players Team Модель has_many: players,: through =>: team_players –

+0

Спасибо, я думаю, что смогу понять это сейчас. – thargor