多态轨道关联(向后?)

时间:2009-08-05 21:14:01

标签: sql ruby-on-rails polymorphic-associations

我的rails应用程序中有一个多对一的多态轨道关联,用于“案例”模型。有很多东西都有案例,所以我通过做'thing_that_has_a_case.case'来访问每个案例。

然而,我正试图走另一条路,我不确定如何。我可以访问case对象但我想访问正在装箱的东西。 rails有办法做到这一点吗?我可以使用一个丑陋的开关,为每种类型的对象执行不同的sql查找,但我希望rails有更好的方法。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在案例模型中添加以下内容:

belongs_to :parent, :polymorphic => true

..假设您的案例模型中包含字段parent_idparent_type(根据您命名这些关联字段的方式,将第一个参数更改为belongs_to)。完成此操作后,您应该能够针对给定的案例实例引用case.parent

而且,只是为了澄清,这种关系的一方有类似的东西:

has_many :cases, :as => :parent, :dependent => :destroy

(我假设你已根据你的描述进行了工作)