我的rails应用程序中有一个多对一的多态轨道关联,用于“案例”模型。有很多东西都有案例,所以我通过做'thing_that_has_a_case.case'来访问每个案例。
然而,我正试图走另一条路,我不确定如何。我可以访问case对象但我想访问正在装箱的东西。 rails有办法做到这一点吗?我可以使用一个丑陋的开关,为每种类型的对象执行不同的sql查找,但我希望rails有更好的方法。谢谢!
答案 0 :(得分:1)
您可以在案例模型中添加以下内容:
belongs_to :parent, :polymorphic => true
..假设您的案例模型中包含字段parent_id
和parent_type
(根据您命名这些关联字段的方式,将第一个参数更改为belongs_to
)。完成此操作后,您应该能够针对给定的案例实例引用case.parent
。
而且,只是为了澄清,这种关系的一方有类似的东西:
has_many :cases, :as => :parent, :dependent => :destroy
(我假设你已根据你的描述进行了工作)