2009-08-05 127 views
0

我的轨道应用程序中有'多'案例'模型多对一多态轨道协会。有很多事情都有案例,所以我通过做'thing_that_has_a_case.case'来查看每件事情的情况。多态轨道协会(倒退?)

但是,我试图去其他方式,我不知道如何。我有权访问该案例对象,但我想访问正在被包装的东西。轨道有办法做到这一点?我可以用一个丑陋的开关来做到这一点,它为每种类型的对象执行不同的sql查找,但我希望导轨会有更好的方法。谢谢!

回答

1

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

belongs_to :parent, :polymorphic => true 

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

而且,我只想澄清,这种关系的一个侧面具有类似:

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

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

+0

谢谢,现在的作品。 – Anon 2009-08-05 21:44:16