2010-10-05 35 views
0

一系列的has_many的关系,我用Rails 3什么是Rails的方法来管理过同型号

主要模式是产品

:product has_many :images 
:product has_many :related_products (self-referential) 
:product has_many :descriptions 
:product has_many :specifications 
:product has_many :upc_codes 
:product has_many :prices 

你的想法。我试图确定我是否可以将这个问题推到一个属性模型中,其中一个属性是价格,规格说明等等。但是我遇到的问题是,虽然其中一些子模型只有一个属性,但其他有很多。例如,图像可能只有一个路径属性,但“描述”可以具有文本值和语言代码,而“价格”可以具有价格和货币组件。

Properties模型提供了很多灵活性,但是如果我处理的是包含多个属性的子属性,则会出现问题。

是我需要这些的真正答案吗?属性与产品始终是一对一的属性方法,以及这些具有多个属性的子模型的每个单独模型(价格,描述等)的方式?

回答

1

如果属性具有非常类似的一组方法,用例和行为,则将它们合并到单个Property模型中是有意义的。

如果他们各自以不同的方式工作,需要不同的方法和行为,那么您目前所描述的将是正确的。

如果情况介于两者之间,则可以使用Single Table Inheritance来避免代码重复,并保持设计简单。

+0

那是关键,丹。我专注于属性本身而不是行为。这些行为决定了某件事是否是一个实体,谢谢你的回答。 – AKWF 2010-10-25 02:30:51

相关问题