我正在使用的Rails应用程序上有两个模型,文章和个人资料。我希望他们有不同的类别。我应该创建两个不同的类别模型吗? article_category和profile_category?如果我这样做会有很多冗余代码。
答案 0 :(得分:2)
问题是,两个类别的功能是否相同?
如果他们这样做,那么我会使用一种类别的模型,即使不同的名称不同。
诀窍是DRY
或“不要重复自己”。因此,如果有任何内容被写入两次,您绝对可以将其重构为更小的代码。
答案 1 :(得分:2)
如果模型相同,那么您应该使用多态关系。请在此处查看我的回复:Rails -- How to setup model that can belong to either of 3 different models
如果不同的类别模型需要额外的逻辑,那么我会使用单表继承。您将拥有父类别类,而ArticleCategory和ProfileCategory将从此继承。基本上,您需要做的就是为类别和另外两个类添加一个类型字段。这将消除冗余代码,并允许您将任何特定于模型的代码分离到适当的类中。如果你需要额外的指导,请告诉我。