![](/icons/30512de.gif)
![](/icons/30512dou.gif)
![](/icons/30512yi.gif)
![](/icons/30512dou.gif)
![](/icons/30512yi.gif)
![](/icons/30512de.gif)
![](/icons/30512yi.gif)
![](/icons/30512dou.gif)
![](/icons/30512dou.gif)
![](/icons/30512de.gif)
![](/icons/30512dou.gif)
![](/icons/30512dou.gif)
Employee < ActiveRecord::Base
belongs_to :manager,
:
_name => "Employee",
:foreign_key => "manager_id"
belongs_to :mentor,
:
_name => "Employee",
:foreign_key => "mentor_id"
has_many :mentored_employees,
:
_name => "Employee",
:foreign_key => "mentor_id"
has_many :managed_employees,
:
_name => "Employee",
:foreign_key => "manager_id"
end
让我们使用
![](/icons/30512yi.gif)
![](/icons/30512dou.gif)
Employee.delete_all
adam = Employee.create(:id => 1, :name => "Adam")
beth = Employee.create(:id => 2, :name => "Beth")
clem = Employee.
(:name => "Clem")
clem.manager = adam
clem.mentor = beth
clem.save!
dawn = Employee.
(:name => "Dawn")
dawn.manager = adam
dawn.mentor = clem
dawn.save!
现在我们可以通过关联
![](/icons/30512dou.gif)
![](/icons/30512de.gif)
![](/icons/30512dou.gif)
![](/icons/30512de.gif)
![](/icons/30512dou2.gif)
p adam.managed_employees.map {|e| e.name} # => [ "Clem", "Dawn" ]
p adam.mentored_employees # => ![](/icons/30512zhk2.gif)
p dawn.mentor.name # => "Clem"
最新评论