我对Rails很新,我遇到了以下问题:
在时尚方面,我们的产品有两个维度:color
和size
。
从技术上讲,我们有两层
问题在于,当您选择产品时,这是基于主产品和颜色(Cool T恤为红色)而不是主级别(Cool Tshirt为红色,蓝色,白色,黑色......)。< / p>
现在我真的不想改变这种架构,因为如果可能的话,我想坚持其他连接系统的建模。
但是我想(在展示视图中)以主色为基础展示产品,因为如果产品首先具有更多可用颜色,用户并不在意。
我读到了关于活动模型的内容,但是我并不确切知道这种方法的正确方法是什么,广泛的研究使我无处可寻......
有人可以帮助我,或指出我正确的方向吗?
谢谢!
答案 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。