Я делаю проект Rails для школы, и одно из требований заключается в том, что я использую отношения многие ко многим в своих моделях. Примеры, на которые я смотрю, очень просты и имеют смысл, но я просто не могу включить это в то, что я конкретно делаю.
Проект, которым я занимаюсь, - это сайт спортивных ставок, в основном вы выбираете либо Fighter A, либо Fighter B, чтобы выиграть, а шансы будут отображаться на странице с указанием потенциальной суммы выплаты и т. Д.
Я создал модель A Fighter , Fight и Event , и заставить их хорошо работать друг с другом было непросто. Вот что у меня есть:
class Event < ApplicationRecord
has_many :fights
end
class Fight < ApplicationRecord
belongs_to :red_corner, :class_name => "Fighter", :foreign_key => 'red_id'
belongs_to :blue_corner, :class_name => "Fighter", :foreign_key = 'blue_id'
belongs_to :event
end
class Fighter < ApplicationRecord
has_one :red_corner, :class_name => "Fighter", :foreign_key => 'red_id'
has_one :blue_corner, :class_name => "Fighter", :foreign_key => 'blue_id'
end
Просто для того, чтобы рассказать об этом в случае, если кто-то запутался, событие проводит много боев за ночь, скажем, около 10. Бой состоит из 2 бойцов (противник в красном углу и один в синем углу, не уверен если я обработал FK там должным образом, но я верю, что это работает до сих пор).
Что мне нужно, это:
- Здесь ситуация со многими ко многим, которую я могу включить. Было бы неплохо как-то включить мою модель событий в нее, чтобы я мог вернуть список боев, которые находятся на определенном событии. (Вместо загрузки нескольких значений в один столбец в моей таблице событий).
- Я также хотел использовать таблицу Fights для получения имен бойцов, но без сохранения их в модели Fight (имя бойца находится внутри модели Fighter). Пример: 'Fight.find (2) .ighters.names' - что-то на этот счет в любом случае.
Можно также опубликовать мою схему, если потребуется.