0

我的 Rails 应用程序中有一个多对一多态 Rails 关联,用于“案例”模型。有很多东西都有案例,所以我通过执行“thing_that_has_a_case.case”来访问每个事物的案例。

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

4

1 回答 1

1

你可以在你的案例模型中添加这样的东西:

belongs_to :parent, :polymorphic => true

..假设您有字段parent_id并且parent_type在您的案例模型中(将第一个参数更改为belongs_to取决于您如何命名这些关联字段)。一旦你有了这个,你应该能够参考给case.parent定的案例实例。

而且,为了澄清,这种关系的一方面是这样的:

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

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

于 2009-08-05T21:41:48.873 回答