Турниры одиночного выбывания с Rails - PullRequest
0 голосов
/ 11 июня 2019

Итак, у меня есть модель User, и я хочу создать турнирные скобки (одиночное исключение) со своими друзьями. У меня есть 3 модели:

Tournament
has_many :players
has_many :matches

Player
belongs_to: tournament
belongs_to: user
has_many_and_belongs_to :matches

Match
belongs_to: tournament
has_many_and_belongs_to :players

Итак, у меня есть форма, когда они создают Турнир, и вы можете выбрать друзей для участия в нем.

Я создаю объект Tournament, затем создаю объекты Player и, наконец, создаю объекты Match. Таблица match_player содержит такие данные, как номер раунда и результаты игрока.

Это хороший способ приблизиться к этому? Или есть более простой способ, которого я не вижу? Я просто чувствую, что это довольно грубый подход к проблеме.

1 Ответ

0 голосов
/ 11 июня 2019

Вам не нужен совпадающий игрок, в котором указывается, что пользователь появляется в определенном матче, вместо этого вы можете использовать самого игрока в качестве пользователя-аватара для сопоставления и хранения информации, как в текущем раунде. Также нет необходимости в избыточном идентификаторе игрока в турнире, который варьируется в зависимости от предпочтения рельсов нормализации, так как вы можете получить игроков из турнира по адресу tour.matches.joins: игроки

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