我需要一些帮助来为我的新rails应用程序创建关联。
我有两个模型User
和Profession
。一个用户可能有许多职业,而这个职业可能属于许多用户。
我可以在两个模型中进行关联。
用户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/