繁体   English   中英

Rails协会HABTM

[英]Rails association HABTM

在为新的Rails应用程序创建关联时,我需要一些帮助。

我有两个模型UserProfession 一个用户可能有很多专业,而专业可能属于许多用户。

我可以在两个模型中进行HABTM关联。

用户has_and_belongs_to_many :professions

行业has_and_belongs_to_many :users

我希望专业表仅保留唯一的专业名称并将其分配给许多用户。 但是如果我尝试为像波纹管这样的用户创造职业

user1.professions.create(name: "Dev")

user2.professions.create(name: "Dev")

两个职业“ Dev”都将保存在职业表中。

如何在行业模型中保存唯一的行业名称并将其分配给许多用户?

我建议将其分为两个步骤。

首先寻找或创造职业:

profession = Profession.find_or_create_by(name: "Dev")

然后将职业分配给用户:

user1.professions << profession
user2.professions << profession

我还建议在professions表的name列上设置唯一索引。 它将保证唯一性。

尝试如下创建关联:

profession = Profession.find_or_create_by(name: "Dev")
user1.professions << profession

profession = Profession.find_or_create_by(name: "Dev")
user2.professions << profession

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM