首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails has_many和has_many

Rails has_many和has_many
EN

Stack Overflow用户
提问于 2017-05-30 19:34:19
回答 1查看 1K关注 0票数 0

我对如何处理这个问题感到困惑。我通过成员模型连接用户和组,但我也希望用户能够创建新的组。显然,一个组必须属于一个用户,但是这些组也是通过成员关系表属于用户的。

我在我的user.rb文件中有这个,但我觉得这是错误的。我是不是移除了第一个,就有了一个?在这种情况下,我如何在这个组的创建者中工作?

代码语言:javascript
复制
class User < ApplicationRecord
  has_many :groups
  has_many :groups, through: :memberships
end

换句话说,用户是许多组的成员,也是许多组的创建者。成员关系表只有两列(组id和用户id)。本列中的用户id用于存储属于该组的用户。我被困在如何处理创建这个组的用户的问题上了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 20:11:39

在组和用户之间应该有两种关系。一个反映了一个用户创建了一个组,另一个反映了一个用户属于一个组。您可以通过配置关系的命名来反映这一想法。您还必须向Groups表中添加一个user_id字段。

代码语言:javascript
复制
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
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44270507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档