设置父模型和子模型,但子项具有自己的列

时间:2013-04-29 16:50:02

标签: ruby-on-rails ruby-on-rails-3.2 polymorphic-associations sti

我正在尝试使用具有某些属性的父级和继承这些属性的子模型来建立一个结构,并维护自己的属性。

理想情况下,我想要一个

的设置
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。这可能吗?

2 个答案:

答案 0 :(得分:0)

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

将'has_many'放在Parent类中,所有孩子都有。

答案 1 :(得分:0)

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