我在我的Rails应用程序多对一多态轨协“案例”的模式。有迹象表明,有许多案件的事情,所以我做“thing_that_has_a_case.case”访问每个事物都有这种情况。

不过,我试图去其他的方式,我不知道如何。我访问的情况下对象,但我想访问正在套管的东西。铁轨是否有办法做到这一点?我可以用一个丑陋的开关,做了不同的SQL找到每种类型的对象做到这一点,但我希望轨将有更好的办法。谢谢!

有帮助吗?

解决方案

您可以添加这样的事情你的情况的模型:

belongs_to :parent, :polymorphic => true

..这假设你有场parent_idparent_type你的情况的模型(这取决于你如何命名的这些关联字段改变第一个参数belongs_to)。一旦你有了这个,你就应该能够指case.parent对于给定的情况下的实例。

和,只是为了澄清,这种关系的一侧具有类似:

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

(我假设你已经有一个工作根据您的描述)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top