gpt4 book ai didi

ruby-on-rails - 一张表的多重关联

转载 作者:数据小太阳 更新时间:2023-10-29 07:34:54 24 4
gpt4 key购买 nike

在问这个之前我已经搜索了一下,但我绝对不能让它工作......

我有一个组模型,它有一个 manager_id、一个 designer_id 和其他用户 ID,对应于该组中的不同用户角色。它们是具有不同外键的 Group 模型中的 has_one 用户关联。

我在 User 模型中尝试了多个 belongs_to 关联但是......属于该组的用户(他们有一个 group_id 列)可以是这些角色之一,我真的不知道如何检查这些和如何在用户模型中进行关联。

提前谢谢你。

PS:用户只能属于一个组,这就是为什么我只是将 group_id 放在用户模型中而不是连接表中。

最佳答案

如果在一个组中担任经理或设计师意味着某人是该组的成员,那么您无法轻松做到这一点,您应该创建一个成员模型,该模型具有一个“角色”属性来说明哪个角色用户代表一个特定的组,下面是它的样子:

class User
has_one :membership
end

class Group
has_many :memberships
end

class Membership
belongs_to :group
belongs_to :user
validates_presence_of :role
validates_inclusion_of :role, :in => [ 'manager', 'designer', 'member' ]
validates_uniqueness_of :user_id, :scope => :group_id
end

这为您提供了功能,甚至允许您为您的组定义尽可能多的角色

关于ruby-on-rails - 一张表的多重关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7057956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com