2010-09-07 59 views

回答

2

问题是,这两个类别的功能是否会一样?

如果他们这样做,那么我会使用一种类型的模型,即使不同的名称会被归因于不同的名称。

诀窍是DRY或“不要重复自己”。因此,如果有任何事情被写两次,你可以绝对重构成一个较小的代码。

+0

好吧,我想我会在类别模型中使用布尔值,profile_cat?和article_cat ?. – kelp 2010-09-07 01:36:40

+0

他们中的任何一个会共享相同的类别名称吗? – Trip 2010-09-07 01:58:17

+0

不,他们不会共享相同的类别名称。 – kelp 2010-09-07 04:50:01

2

如果模型是相同的,那么你应该使用多态关系。看到我的回应在这里:Rails -- How to setup model that can belong to either of 3 different models

如果不同的类别模型将需要额外的逻辑,那么我会使用单表继承为此。您将拥有一个父类别类,并且ArticleCategory和ProfileCategory将从此继承。基本上所有你需要做的就是添加一个类型字段到类别和两个额外的类。这将消除多余的代码,并允许您将任何模型特定的代码分离到适当的类中。让我知道你是否需要额外的方向。

相关问题