轨道中两个表之间的2对或多对一对多关系

时间:2015-05-26 20:33:56

标签: ruby-on-rails ruby ruby-on-rails-4 many-to-one

我有两张桌子:

用户和群组

用户has_many组和组,belongs_to用户:

u = User.last
u.groups 

假设我想要一个不同群体的第二个列表,原因有些奇怪。用户可能再次拥有组(在此示例中称为other_group)并且组属于用户。

u = User.last
u.other_groups

如何在此关系中关联两个模型,两次使用Active Record?

3 个答案:

答案 0 :(得分:1)

您的用户模型可能有两个外键(rails中的属性)

User.group_id
User.other_group_id

答案 1 :(得分:0)

你可以做到

User(user_id)  
Group(group_id)
UserGroup (id, user_id, group_id)

这允许您拥有与不同组关联的user_ids的记录 这样,您就可以拥有多个用户组关联。

答案 2 :(得分:0)

你可以做到

class User
    has_many :groups, :class_name => "Group", :foreign_key => "group_id"
    has_many :other_groups, :class_name => "Group", :foreign_key => "other_group_id"