首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每个用户的Rails唯一标记

每个用户的Rails唯一标记
EN

Stack Overflow用户
提问于 2018-10-27 02:58:28
回答 1查看 107关注 0票数 0

我试图在包模型中添加标记,每个用户都应该有自己创建的标记。

两国关系将是:

代码语言:javascript
运行
复制
Package
  has_many :tags
  belongs_to :user

User
  has_many :packages
  has_many :tags

Tag
  has_many :packages
  belongs_to :user

我应该使用什么联想?

我应该使用has_and_belongs_to_many on TagPackage还是has_many_through?还是每种型号上都有has_many

EN

回答 1

Stack Overflow用户

发布于 2018-10-27 03:40:25

您不能同时拥有Package has_many :tagsTag has_many :packages。没错,应该使用has_and_belongs_to_manyhas_many through来代替。它们之间的区别在于您希望如何处理连接表。

如果它的唯一目的是保存tagspackages之间的连接,那么可以使用has_and_belongs_to_many

否则,如果您想在联接表中保留一些附加信息(例如包的标记权重),那么它可以是一个单独的模型;因此关联应该是has_many through

也见this的答案。

User模型的关联如何:由于PackageTag都属于User,所以packagestags表都在字段user_id中实现了该关联。所以User has_many :packagesUser has_many :tags。没有其他选择。

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

https://stackoverflow.com/questions/53018360

复制
相关文章

相似问题

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