我应该创建两组不同的“类别”模型吗? Ruby on Rails

时间:2010-09-07 00:43:38

标签: ruby-on-rails ruby

我正在使用的Rails应用程序上有两个模型,文章和个人资料。我希望他们有不同的类别。我应该创建两个不同的类别模型吗? article_category和profile_category?如果我这样做会有很多冗余代码。

2 个答案:

答案 0 :(得分:2)

问题是,两个类别的功能是否相同?

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

诀窍是DRY或“不要重复自己”。因此,如果有任何内容被写入两次,您绝对可以将其重构为更小的代码。

答案 1 :(得分:2)

如果模型相同,那么您应该使用多态关系。请在此处查看我的回复:Rails -- How to setup model that can belong to either of 3 different models

如果不同的类别模型需要额外的逻辑,那么我会使用单表继承。您将拥有父类别类,而ArticleCategory和ProfileCategory将从此继承。基本上,您需要做的就是为类别和另外两个类添加一个类型字段。这将消除冗余代码,并允许您将任何特定于模型的代码分离到适当的类中。如果你需要额外的指导,请告诉我。