Как создать отношение между двумя объектами в Rails отношение has_many_and_belongs_to_many - PullRequest
1 голос
/ 08 февраля 2012

У меня есть следующие модели:

class Match < ActiveRecord::Base

has_and_belongs_to_many :teams

end 

И

class Team < ActiveRecord::Base

has_and_belongs_to_many :matches

end

Они объединены вместе с таблицей match_teams.

Кажется, у меня все настроеноправильно.Например, я могу заставить @ team.matches работать.

Мой вопрос: как мне назначить две конкретные команды на матч?В консоли rails я могу перейти: @ team.match.create, и это работает, но это создает новое соответствие, связанное с этой командой.Как у меня была другая команда в этой ассоциации?

Я довольно новичок в Rails, если это не было уже очевидно.Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2012

Шаг за шагом, если вы хотите добавить две команды к матчу, что я думаю, вы хотите сделать:

match = Match.create!(...)
team_one = Team.create!(...)
team_two = Team.create!(...)

match.teams << team_one
match.teams << team_two

Очевидно, вы можете сжать это до меньшего количества строк, но я подумал, что здесь я не буду останавливаться. Кроме того, вы можете сделать то же самое, добавив свои спички в команду, но это кажется немного менее интуитивным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...