我需要一些帮助来为我的新rails应用程序创建关联。
我有两个模型combined_df = combined_df[~combined_df['Title'].isin(['Mr', 'Mrs', 'Miss', 'Master'])]
和User
。用户可能拥有许多职业和职业可能属于许多用户。
我可以在两个模型中进行Profession
关联。
用户HABTM
专业has_and_belongs_to_many :professions
我希望职业表应该只包含唯一的职业名称并将其分配给许多用户。但是,如果我尝试为像bellow这样的用户创建职业
has_and_belongs_to_many :users
专业" Dev"将被保存在职业表中。
如何在专业模型中保存唯一专业名称并将其分配给许多用户?
答案 0 :(得分:2)
我建议将其分为两步。
首先找到或创造职业:
profession = Profession.find_or_create_by(name: "Dev")
然后将专业分配给用户:
user1.professions << profession
user2.professions << profession
我还建议在professions
表的name
列上设置唯一索引。它将保证唯一性。
答案 1 :(得分:1)
尝试创建关联,如下所示:
profession = Profession.find_or_create_by(name: "Dev")
user1.professions << profession
profession = Profession.find_or_create_by(name: "Dev")
user2.professions << profession