在问这个之前我已经搜索了一点,但我绝对无法让它工作......

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

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

先感谢您。

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

最佳答案

如果作为组中的经理或设计师意味着某人是该组的成员,则您无法轻松做到这一点,您应该创建一个成员资格模型,该模型具有“角色”属性,说明用户代表哪个角色在特定组中,它的外观如下:

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/

10-11 08:14
查看更多