[英]Rails association HABTM
在为新的Rails应用程序创建关联时,我需要一些帮助。
我有两个模型User
和Profession
。 一个用户可能有很多专业,而专业可能属于许多用户。
我可以在两个模型中进行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.