【发布时间】:2010-09-07 12:05:53
【问题描述】:
我正在开发的 Rails 应用程序上有两个模型,文章和个人资料。我希望他们有单独的类别集。我应该创建两个不同的类别模型吗? article_category 和 profile_category?如果我这样做,将会有很多冗余代码。
【问题讨论】:
标签: ruby-on-rails ruby
我正在开发的 Rails 应用程序上有两个模型,文章和个人资料。我希望他们有单独的类别集。我应该创建两个不同的类别模型吗? article_category 和 profile_category?如果我这样做,将会有很多冗余代码。
【问题讨论】:
标签: ruby-on-rails ruby
问题是,这两个类别的功能是否相同?
如果他们这样做,那么我会使用一种类别模型,即使不同的名称会被赋予不同的属性。
诀窍是DRY 或“不要重复自己”。因此,如果任何内容被编写两次,您绝对可以将其重构为更小的代码。
【讨论】:
如果模型相同,则应使用多态关系。在这里查看我的回复:Rails -- How to setup model that can belong to either of 3 different models
如果不同的类别模型需要额外的逻辑,那么我会为此使用单表继承。您将有一个父 Category 类,并且 ArticleCategory 和 ProfileCategory 将从该类继承。基本上,您需要做的就是向类别和两个附加类添加一个类型字段。这将消除冗余代码,并允许您将任何特定于模型的代码分离到适当的类中。如果您需要其他指导,请告诉我。
【讨论】: