【发布时间】:2014-03-26 05:42:45
【问题描述】:
我实际上是在尝试通过关联创建一个 has_many。让我先解释一下事情应该如何运作。
我有一个 users、groups 和 members 表。规则如下:
- 用户可以创建一个组(取决于它的角色)(groups 表有一个 user_id)
- 一个用户可以是一个或多个组的成员(成员表包含 user_id 和 group_id)
这是我目前的关系类:
class User < ActiveRecord::Base
# Associations
has_many :groups # As user, I create many groups
has_many :members
has_many :groups, through: :members # But I can also belongs to many groups
end
class Group < ActiveRecord::Base
# Associations
belongs_to :user
has_many :members
has_many :users, through: :members
end
class Member < ActiveRecord::Base
# Associations
belongs_to :user
belongs_to :group
end
我的问题是关于团体关系。你看到一个用户可以创建组,这意味着:
has_many :groups
但用户也可以是组的成员:
has_many :groups, through: :members
由于这种新关系,我现在 75% 的规格都被打破了。另外,我注意到如果我使用与组关联的用户登录,我可以看到实际的组列表。但是,当我尝试以群组所有者(创建群组的人)身份登录时,我看不到该用户创建的群组。
想法?
【问题讨论】:
标签: ruby-on-rails associations