gpt4 book ai didi

ruby-on-rails-3 - has_many 和 belongs_to 在同一个模型中

转载 作者:行者123 更新时间:2023-12-01 10:00:05 24 4
gpt4 key购买 nike

我有一个模型用户,它有一个“角色”属性,可以用“员工”或“经理”填充。现在我想要一种关系,其中经理有_很多员工,员工属于_经理。

是否可以在同一模型中执行此操作?我可以想到这样的事情:

has_many :employees, class_name: "User", :foreign_key => "employee_id"
belongs_to :manager, class_name: "User", :foreign_key => "manager_id"

即使这行得通,我怀疑它是否是最优雅的解决方案,因为您会有 2 个额外的外键。

最佳答案

我通过在用户模型中创建这些关系解决了这个问题:

  has_many :employees, class_name: "User", foreign_key: :manager_id
belongs_to :manager, class_name: "User", foreign_key: :manager_id

然后我可以创建经理和员工:

manager  = User.create!(first_name: "Mario", last_name: "Manager", role: "manager")
employee = User.create!(first_name: "Ed", last_name: "Employee", role: "employee", manager_id: 16)

然后可以使用像这样的东西:

manager.employees
employee.manager

关于ruby-on-rails-3 - has_many 和 belongs_to 在同一个模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17446757/

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