Запрос через ассоциации с Ruby on Rails - PullRequest
1 голос
/ 09 ноября 2011

У меня есть вопрос о выполнении запроса через несколько ассоциаций с использованием Ruby on Rails.

Этот вопрос включает в себя запросы по трем моделям.(Событие, Бой, Бойцы).Важными частями моделей являются следующие:

  • Событие имеет несколько боев.
  • В каждом бою есть два бойца: fighter1 и fighter2.

Мне нужно написать функцию для получения списка всех боев, которые имеют данный боец.Однако это необходимо сделать с помощью модели Event из-за какой-то странной локализации, которую мы выполняем.

Есть ли простой способ сделать это?

1 Ответ

1 голос
/ 10 ноября 2011

Предполагая

class Event
  has_many :fights
end

class Fight
  has_many :fighters
end

Тогда вы можете сделать:

events = Event.joins(:fights => :fighters).where("fighters.name = 'sally'")
fights = events.inject([]){|a,e| a = a + e.fights; a }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...