0

我正在尝试建立一个结构,其父级具有一些属性,而子级模型继承这些属性并保持自己的属性。

理想情况下,我想要一个设置

class Parent
  attr_accessible :some_attribute, some_attribute2, some_attribute3
end

class Child < Parent
  attr_accessible :some_child_attr, :some_other_child_attr
end

class OtherChild < Parent
  attr_accessible :something, :something_else
end

因为我可以通过孩子访问列,但也可以将特定的孩子数据附加到给定的模型上。我一直在研究 STI 和多态关联,但我想避免为每种类型的孩子添加 has_many。这可能吗?

4

2 回答 2

0

当然可以。这就是继承的工作原理。这就是 OOP 的美妙之处。

只需将“has_many”放在 Parent 类中,所有孩子都有这个。

于 2013-04-29T16:59:14.793 回答
0

我已经能够使用https://github.com/hzamani/acts_as_relation gem 解决我的问题。看来我正在寻找的是所谓的多表继承。一旦我完成了这个设置,我就能够创建具有与父级相同属性的子模型以及它们自己的个体模型,而无需将每个子模型指定为父模型中的多态关联。

于 2013-04-29T19:00:04.267 回答