찾다

 >  Q&A  >  본문

ruby - Rails 中如何设置自连接类型

有一个model 存放地区列表,使用parent_id保存上级节点的id,如何配置关系才能实现自连接呢? 从网上查了下,感觉和我这个不太一样,不明白他的manager和mentor什么意思。

自连接

对于表中的一个记录连接同一个表中的另一个记录也是可能发生的。举个例子,公司里每一个 雇员有一个manager和一个mentor,这两个也是雇员。在Rails你可以这样建模。

class Employee < ActiveRecord::Base

  belongs_to :manager, :class_name => "Employee", :foreign_key => "manager_id"

  belongs_to :mentor, :class_name => "Employee", :foreign_key => "mentor_id"

  has_many :mentored_employees, :class_name => "Employee", :foreign_key => "mentor_id"

  has_many :managed_employees, :class_name => "Employee", :foreign_key => "manager_id"

end

让我们加载一些数据。Clem和Dawn每个都一个mamager和一个mentor。

PHP中文网PHP中文网2778일 전914

모든 응답(1)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-21 11:18:05

    Rails Guides에서는 이를 매우 명확하게 설명합니다.
    http://guides.rubyonrails.org/association_basics.html#self-joins

    회신하다
    0
  • 취소회신하다