我对如何处理这个问题感到困惑。我通过成员模型连接用户和组,但我也希望用户能够创建新的组。显然,一个组必须属于一个用户,但是这些组也是通过成员关系表属于用户的。
我在我的user.rb文件中有这个,但我觉得这是错误的。我是不是移除了第一个,就有了一个?在这种情况下,我如何在这个组的创建者中工作?
class User < ApplicationRecord
has_many :groups
has_many :groups, through: :memberships
end换句话说,用户是许多组的成员,也是许多组的创建者。成员关系表只有两列(组id和用户id)。本列中的用户id用于存储属于该组的用户。我被困在如何处理创建这个组的用户的问题上了。
发布于 2017-05-30 20:11:39
在组和用户之间应该有两种关系。一个反映了一个用户创建了一个组,另一个反映了一个用户属于一个组。您可以通过配置关系的命名来反映这一想法。您还必须向Groups表中添加一个user_id字段。
class User < ApplicationRecord
has_many :created_groups, class_name: "Group"
has_many :memberships
has_many :groups, through: :memberships
end
class Group < ApplicationRecord
belongs_to :creator, class_name: "User"
has_many :memberships
has_many :subscribers, through: :memberships, source: :user
end
class Membership < ApplicationRecord
belongs_to :user
belongs_to :group
endhttps://stackoverflow.com/questions/44270507
复制相似问题