【问题标题】:Polymorphic Rails Associations (going backwards?)多态 Rails 关联(倒退?)
【发布时间】:2010-11-17 04:08:57
【问题描述】:
我的 Rails 应用程序中有一个多态 Rails 关联,用于“案例”模型。有很多东西都有案例,所以我通过执行“thing_that_has_a_case.case”来访问每个事物的案例。
但是,我正在尝试另一种方式,但我不确定如何。我可以访问 case 对象,但我想访问正在被装箱的东西。 rails有办法做到这一点吗?我可以用一个丑陋的开关来做到这一点,它为每种类型的对象执行不同的 sql 查找,但我希望 rails 有更好的方法。谢谢!
【问题讨论】:
标签:
sql
ruby-on-rails
polymorphic-associations
【解决方案1】:
你可以在你的案例模型中添加这样的东西:
belongs_to :parent, :polymorphic => true
..假设您的案例模型中有字段parent_id 和parent_type(将第一个参数更改为belongs_to,具体取决于您如何命名这些关联字段)。一旦你有了这个,你应该能够为给定的案例实例引用case.parent。
而且,澄清一下,这种关系的一方面是这样的:
has_many :cases, :as => :parent, :dependent => :destroy
(我假设您已经根据您的描述进行了该工作)