我需要一些帮助来为我的新rails应用程序创建关联。
我有两个模型UserProfession。一个用户可能有许多职业,而这个职业可能属于许多用户。
我可以在两个模型中进行关联。
用户HABTM
专业has_and_belongs_to_many :professions
我想专业表应该只保存唯一的专业名称,并分配给许多用户。但如果我想为bellow这样的用户创造职业

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

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

两个职业“dev”都将保存在professions表中。
如何在专业模型中保存唯一的专业名称并将其分配给多个用户?

最佳答案

我建议把它分成两步。
最初发现或创造职业:

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

然后将专业分配给用户:
user1.professions << profession
user2.professions << profession

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

关于ruby-on-rails - Rails协会HABTM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48516446/

10-09 21:18