搜尋

首頁  >  問答  >  主體

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中文网2781 天前915

全部回覆(1)我來回復

  • 怪我咯

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

    rails guides這個說的很清楚 :
    http://guides.rubyonrails.org/association_basics.html#self-joins

    回覆
    0
  • 取消回覆