如何在另一个表中自引用用户ruby on rails

bt1cpqcv  于 2023-05-28  发布在  Ruby
关注(0)|答案(2)|浏览(98)

嗨,我需要有一个管理员为我的用户表。我现在已经创建了一个名为liaison的中间表,它将包含manager_id和references user_id表。问题是,我不知道如何添加它们之间的关联,我需要在我的activeadmin面板中列出用户作为管理员也在用户创建。
我已经在user.rb中尝试过这种关联

has_many :liaisons
  has_many :managers, through: :liaisons

联络员rb

has_many :users
  has_many :users, through: :liaisons

我的liaisons表包含manager_id和user_id,我需要为单个用户创建多个管理器。
我需要列出所有的用户作为管理员在创建用户和关联他们。谢谢。

vojdkbi0

vojdkbi01#

liaisons模型仅引用单个用户/管理员,并且需要知道如何将管理员Map回users表:

class Liaison < ApplicationModel
    belongs_to :user
    belongs_to :manager, class_name: "User"
end
s1ag04yj

s1ag04yj2#

如果每个用户只有一个管理器,那么完全取消"Liaison"模型会更容易,只在users中有一个manager_id列。然后在User模型中,您可以有:

belongs_to :manager, class_name: 'User',
                     inverse_of: :direct_reports, optional: true
has_many :direct_reports, class_name: 'User', foreign_key: :manager_id,
                          inverse_of: :manager

在这个项目中可以看到这种设置的示例:https://github.com/lorint/Simpsons
关于这个manager_id关联的更多描述将从1:30开始在这个视频中演示:
https://www.reddit.com/r/rails/comments/13rml5y/video_response_to_gmfts_question_about_hmt/
(其他东西也被演示了,但你可以看到ERD图和65个用户的层次结构。

相关问题