我在我的应用程序中使用单表继承,并且我遇到了如何最好地实例化子类的困境。假设我们有一个班级Dwelling
,以及子类Apartment
和House
。现在Dwelling
与另一个班级Neighborhood
相关联。
模型/住宅
belongs_to :neighborhood
模型/附近
has_many :dwellings
假设我已经实例化了一个新社区,我想创建一个House
n = Neighborhood.new
其中哪一项是正确的方法?
n.dwellings.build
House.new
如果我使用第一种方法实例化,我必须填写住所:type
。但是使用第二种方法我必须输入外键。我还读到我不应该通过它的父类实例化一个子类,这样如果这个建议是正确的话会立即排除n.dwellings.build
吗?非常感谢任何指导,谢谢!
答案 0 :(得分:0)
我想添加
has_many :apartments
has_many :houses
以及邻居模型中的:has_many:dwellings 将解决您的问题。
n = Neighborhood.new
现在你可以使用
n.houses.build
或
h = House.new
n.houses << h