两个模型之间的多个多对多关联
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
的管理员。
现在我要创建另一个与 User
和 Company
的多对多关系,其中 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.
注:未测试
我已经创建了如下结构的多对多关系。
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
的管理员。
现在我要创建另一个与 User
和 Company
的多对多关系,其中 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.
注:未测试