也许我今天的注意力有点慢(我甚至不能说一个恰当的说明),但我想解决这个问题:
我想从我以前的问题扩展我的模型。
简要回顾:
一家超市可以存放许多产品,每一种产品都可以在许多超市销售。协会是通过供应模式建立的。
扩展:
现在我想扩展这个模型:假设我有一个产品Apple (水果)。它可以来自不同的品种:“史密斯奶奶”、“黄金美味”等等。
在超市1我可以买到
在超市2我可以买到
编辑:
一个更常见的问题是,有不同的公司提供相同的产品:玉米片可以由Kellog's或General Mills提供,而这些公司同时生产许多产品:
第一超市销售:
第二超市销售:
我想我需要一个额外的模式,以连接品牌(在上面的模式品种)和产品(玉米片/苹果)。
/Edit
我必须另外创建哪些模型,以及如何将它们连接起来?我想有点像多态关联,但我真的不知道.
发布于 2012-09-14 16:29:23
你可能想在超市和详细的产品之间建立多到多的关系。详细的产品会有一般产品的外键。
让我们假设您命名一般产品模型属(复数:属)。随便找个更好的名字。
class Genus
has_many :products
end
class Brand
has_many :products
end
class Product
belongs_to :genus
belongs_to :brand
has_many :supplies
has_many :supermarkets, :through => :supplies
end
class Supply
belongs_to :product
belongs_to :supermarket
end
class Supermarket
has_many :supplies
has_many :products, :through => :supplies
end
Product Genus
Granny Smith Apple Apple
Golden Delicious Apple Apple
Braeburn Apple Apple
Macintosh Apple Apple
Kellog's Cornflakes Cornflakes
GM Cornflakes Cornflakes
Kellog's Rice Krispies Rice Krispies您还可以在产品到品牌,以存储凯洛格或通用磨坊的外键。
https://stackoverflow.com/questions/12427762
复制相似问题