有一个 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。