Rails:颜色级别的产品虚拟模型?

时间:2014-02-21 09:54:19

标签: ruby-on-rails model

我对Rails很新,我遇到了以下问题:

在时尚方面,我们的产品有两个维度:colorsize。 从技术上讲,我们有两层

  • 包含颜色和尺寸的主产品......
  • 一个upc,它是一个主产品的一个特定尺寸和颜色,因为你实际可以购买的是upc(颜色和尺寸必须定义)。

问题在于,当您选择产品时,这是基于主产品和颜色(Cool T恤为红色)而不是主级别(Cool Tshirt为红色,蓝色,白色,黑色......)。< / p>

现在我真的不想改变这种架构,因为如果可能的话,我想坚持其他连接系统的建模。

但是我想(在展示视图中)以主色为基础展示产品,因为如果产品首先具有更多可用颜色,用户并不在意。

我读到了关于活动模型的内容,但是我并不确切知道这种方法的正确方法是什么,广泛的研究使我无处可寻......

有人可以帮助我,或指出我正确的方向吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

您应该考虑您正在建模的独特概念:您的架构应该反映现实生活情况。因此,在实际情况中,您有以下几点:

一系列颜色

各种尺寸

产品系列(我认为这就是“主产品”的意思)

产品(具有特定颜色和尺寸的产品系列的实例)

购买,是特定人员的特定产品。

#name
class Size

#name
class Color

#name
class ProductLine

#product_line_id, color_id, size_id
class Product
  belongs_to :product_line
  belongs_to :color
  belongs_to :size

#product_id, various other fields
class Purchase
  belongs_to :product

答案 1 :(得分:0)

我建议您在模型中使用Enity-Attribute-Value,以便拥有动态属性。

您可以使用扩展/ gem为ActiveRecord提供此模式的实现,请检查hydra_attribute gem。