Rails 协会 HABTM
Rails association HABTM
我需要一些帮助来为我的新 rails 应用程序创建关联。
我有两个模型 User
和 Profession
。一个用户可能有多个职业,职业可能属于多个用户。
我可以在两个模型中进行 HABTM
关联。
用户has_and_belongs_to_many :professions
职业has_and_belongs_to_many :users
我想要专业 table 应该只包含唯一的专业名称并将它们分配给许多用户。但是如果我尝试为像下面这样的用户创建职业
user1.professions.create(name: "Dev")
user2.professions.create(name: "Dev")
两个职业"Dev"都会在职业table中得到拯救。
如何在职业模型中保存唯一的职业名称,并可以分配给多个用户?
我建议将其分成两步。
首先找到或创建职业:
profession = Profession.find_or_create_by(name: "Dev")
然后将职业分配给用户:
user1.professions << profession
user2.professions << profession
我还建议在 professions
table 的 name
列上设置唯一索引。它将保证唯一性。
尝试创建如下关联:
profession = Profession.find_or_create_by(name: "Dev")
user1.professions << profession
profession = Profession.find_or_create_by(name: "Dev")
user2.professions << profession
我需要一些帮助来为我的新 rails 应用程序创建关联。
我有两个模型 User
和 Profession
。一个用户可能有多个职业,职业可能属于多个用户。
我可以在两个模型中进行 HABTM
关联。
用户has_and_belongs_to_many :professions
职业has_and_belongs_to_many :users
我想要专业 table 应该只包含唯一的专业名称并将它们分配给许多用户。但是如果我尝试为像下面这样的用户创建职业
user1.professions.create(name: "Dev")
user2.professions.create(name: "Dev")
两个职业"Dev"都会在职业table中得到拯救。
如何在职业模型中保存唯一的职业名称,并可以分配给多个用户?
我建议将其分成两步。
首先找到或创建职业:
profession = Profession.find_or_create_by(name: "Dev")
然后将职业分配给用户:
user1.professions << profession
user2.professions << profession
我还建议在 professions
table 的 name
列上设置唯一索引。它将保证唯一性。
尝试创建如下关联:
profession = Profession.find_or_create_by(name: "Dev")
user1.professions << profession
profession = Profession.find_or_create_by(name: "Dev")
user2.professions << profession