0

我在我的应用程序中使用单表继承,并且在如何最好地实例化子类方面遇到了困境。假设我们有一个类Dwelling,子类ApartmentHouse。现在Dwelling与另一个类相关联Neighborhood

模型/住宅

belongs_to :neighborhood

模特/邻里

has_many :dwellings

假设我已经按如下方式实例化了一个新社区,并且我想创建一个House

n = Neighborhood.new

以下哪一个是正确的方法?

n.dwellings.build 

House.new

如果我使用第一种方法进行实例化,我必须填写住所:type。但是使用第二种方法我必须输入外键。我还读到我不应该通过它的父类实例化一个子类,这样就可以立即排除n.dwellings.build这个建议是否正确?任何指导将不胜感激,谢谢!

4

1 回答 1

0

我想添加

has_many :apartments 
has_many :houses

Neighborhood模型中的:has_many :dwellings一起解决您的问题。

n = Neighborhood.new

现在你可以使用

n.houses.build 

或者

h = House.new
n.houses << h
于 2013-04-15T22:17:18.077 回答