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

2 or more One to Many relationships between two tables in rails

我有两个表:

用户和组

一个用户has_many组和一个组,belongs_to一个用户:

u = User.last
u.groups 

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

u = User.last
u.other_groups

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

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

User.group_id
User.other_group_id

你可以做到

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

这允许您将 user_ids 的记录关联到不同的组。
这种方式让你有多个用户组关联。

你可以做到

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