【发布时间】:2011-04-22 17:15:40
【问题描述】:
请稍等片刻……
我有两个模型:HorseRaceEvent 和 Wagerable。
Wagerable 使用具有两个子类的 STI:Trifecta 和 Wager。
Trifecta 和 Wager 之间存在父子关系。对于 Trifecta,有 3 个与之相关的投注。为了在 Wager 与其父 Trifecta 之间建立关联,我为 Wager 记录使用了 parent_id 列,该列引用了 Trifecta 记录。如果投注不是 Trifecta 的一部分,则 parent_id 为空。 (Trifecta 的 parent_id 始终为空。)
所以:
- Trifecta 有很多赌注
- 赌注属于 Trifecta
现在进入 HorseRaceEvent。
- HorseRaceEvent 有很多赌注。
- 赌注属于 HorseRaceEvent。
注意:请注意,与 HorseRaceEvent 的关系是 Wager,而不是 Wagerable 或 Trifecta。 (对于 Trifecta 记录, horse_race_event_id 始终为空。)
HorseRaceEvent 有一个名为“status”的属性,它可以具有三种状态:未开始、开始、最终。
Wagerable 有一个名为“result”的属性,它具有以下三个值之一:null、W、L。
挑战如下:
对于 Trifecta 模型,我想实现一个 named_scope 或静态方法,它返回所有 Trifecta,其中 (1) 结果为 null 并且 (2) 其子 Wager 的每个关联 HorseRaceEvent 都是“Final”。
【问题讨论】:
-
HorseRaceEvent has_one 赌注?
标签: mysql ruby-on-rails parent-child sti