有一個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。
rails guides這個說的很清楚 :
http://guides.rubyonrails.org/association_basics.html#self-joins