【发布时间】:2015-03-10 22:26:41
【问题描述】:
我有一个场景,我需要有多个 has_one 关系,并且能够通过一个关系一次访问它们。
目前我有一张 STI 表,我们将其命名为 Animals。 有子类:狮子、猫鼬、野猪
并且它们都需要与多个 Group 对象相关。
所以一个 Lion 可以属于多个组,但一个组可能只有一个 Lion 相关。
我想限制并专门指一种狮子、猫鼬和野猪。 我尝试了一个简单的桥表,has_many :animals,通过::associated_animals。但是似乎没有一个简单的方法来拉出 group.lion。我也尝试过做多个 has_one :lion/:meerkat/:boar 关系,但没有明显的方法来做 group.animals。
是否有一种 STI 方法可以通过默认的 rails 关联来获得此功能,还是我必须将 has_one :lion 和 has_many :animals 结合起来?
【问题讨论】:
标签: ruby-on-rails ruby activerecord