两个模型之间的多个多对多关联

Multiple many-to-many association between two models

我已经创建了如下结构的多对多关系。

Class User
 has_many :companies, :through => company_admins
 has_many :company_admins
end

Class Company
 has_many :company_admins
 has_many :users,  :through => company_admins
end

Class CompanyAdmin
 belongs_to :company
 belongs_to :user
end

在这里,User 可以被指定为许多 Company 的管理员。

现在我要创建另一个与 UserCompany 的多对多关系,其中 User 可以跟随多个 company。我该怎么做?

我添加了

Class User
 has_many :companies, :through => company_admins
 has_many :companies, :through => followers
 has_many :company_admins
 has_many :followers
end

Class Company
 has_many :company_admins
 has_many :followers
 has_many :users,  :through => company_admins
 has_many :users,  :through => followers
end

Class Follower
 belongs_to :company
 belongs_to :user
end

现在,如果我使用 @company.users 搜索任何公司的管理员用户,它会在 Follower table 中搜索。 任何人都可以帮助我与协会?

我猜你的协会设置应该是这样的

#user.rb
Class User
 has_many :company_admins
 has_many :companies, :through => company_admins
 has_many :followers
 has_many :followed_companies, :through => followers, :source => :company
end

#company.rb
Class Company
 has_many :company_admins
 has_many :users, :through => company_admins
 has_many :followers
 has_many :followed_users, :through => followers, :source => :user    
end

#follower.rb
Class Follower
 belongs_to :company
 belongs_to :user
end

现在,如果您输入 @company.users,它将在 company_admins table 中搜索,如果您输入 @company.followed_users,它将在 followers 中搜索 table.

注:未测试