Потерпи меня секунду ...
У меня есть две модели: HorseRaceEvent и Wagerable.
Wagerable использует STI с двумя подклассами: Trifecta и Wager.
Между Trifecta и Wager существуют отношения между родителями и детьми. Для Trifecta есть 3 ставки, связанные с ней. Чтобы установить связь между Wager и его родительским Trifecta, я использую столбец parent_id для записи Wager, которая ссылается на запись Trifecta. Если Ставка не является частью Trifecta, то parent_id является нулевым. (parent_id для Trifecta всегда нулевой.)
Итак:
- У Trifecta много ставок
- Ставка принадлежит Trifecta
Теперь введите HorseRaceEvent.
- HorseRaceEvent имеет много ставок.
- Ставка принадлежит HorseRaceEvent.
ПРИМЕЧАНИЕ: обратите внимание, что отношения с HorseRaceEvent являются Wager, а не Wagerable или Trifecta. (Horse_race_event_id всегда равен нулю для записи Trifecta.)
HorseRaceEvent имеет атрибут под названием «status», который может иметь три состояния: «Не запущен», «Запущен», «Окончательный».
Wagerable имеет атрибут с именем 'result', который имеет одно из трех значений: null, W, L.
Вот вызов:
Для модели Trifecta я хотел реализовать named_scope или статический метод, который возвращает все Trifectas, в которых (1) результат равен нулю и (2) каждый из связанных с дочерним элементом Wager HorseRaceEvent равен 'Final'.