У меня есть три модели в приложении Rails: Game
представляет экземпляр игры, в которую играют. Player
представляет экземпляр участника в игре. User
представляет зарегистрированное лицо, которое может участвовать в играх.
Каждый Game
может иметь много Players
, а каждый User
может иметь много Players
(один человек может участвовать в нескольких играх одновременно); но каждый Player
находится точно в одном Game
и представляет точно один User
. Следовательно, мои отношения в настоящее время таковы.
class Game
has_many :players
end
class User
has_many :players
end
class Player
belongs_to :game
belongs_to :user
end
... где, естественно, таблица players
имеет столбцы game_id
и user_id
, а games
и users
не имеют внешних ключей.
Я также хотел бы представить тот факт, что в каждом Game
есть много Users
, играющих в нем; и у каждого User
есть много Games
, в которые они играют. Как мне это сделать? Достаточно ли добавить
class Game
has_many :users, :through => :players
end
class User
has_many :games, :through => :players
end