首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多到多的关系可能需要多态关联?创建模型所需的帮助

多到多的关系可能需要多态关联?创建模型所需的帮助
EN

Stack Overflow用户
提问于 2012-09-14 15:39:10
回答 1查看 145关注 0票数 0

也许我今天的注意力有点慢(我甚至不能说一个恰当的说明),但我想解决这个问题:

我想从我以前的问题扩展我的模型。

简要回顾:

一家超市可以存放许多产品,每一种产品都可以在许多超市销售。协会是通过供应模式建立的。

扩展:

现在我想扩展这个模型:假设我有一个产品Apple (水果)。它可以来自不同的品种:“史密斯奶奶”、“黄金美味”等等。

超市1我可以买到

  • 苹果->“史密斯奶奶”
  • 苹果->“黄金美味”

超市2我可以买到

  • 苹果-> "Braeburn“
  • 苹果->“黄金美味”
  • 苹果-> "McIntosh“(真的,这是一款苹果品种)。

编辑:

一个更常见的问题是,有不同的公司提供相同的产品:玉米片可以由Kellog's或General Mills提供,而这些公司同时生产许多产品:

第一超市销售:

  • 玉米片-> Kellog's
  • 玉米片->普通磨坊

第二超市销售:

  • 玉米片-> Kellog's
  • 米饼-> Kellog's

我想我需要一个额外的模式,以连接品牌(在上面的模式品种)和产品(玉米片/苹果)。

/Edit

我必须另外创建哪些模型,以及如何将它们连接起来?我想有点像多态关联,但我真的不知道.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-14 16:29:23

你可能想在超市和详细的产品之间建立多到多的关系。详细的产品会有一般产品的外键。

让我们假设您命名一般产品模型属(复数:属)。随便找个更好的名字。

代码语言:javascript
运行
复制
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

您还可以在产品到品牌,以存储凯洛格或通用磨坊的外键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12427762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档