rubyonrails:Ruby on rails开发从头来( 5十 8)- ActiveRecord基础(自关联)

  或许存在这样情况个表中条记录关联到表中条记录例如公司中每个雇员都有上级和下级而他们同时又是雇员在Rails中你可以这样使用Employee类: 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


  让我们使用些数据这里雇员Clem和Dawn都有上级和下级:

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!


  现在我们可以通过关联来回答“X下属是谁?”“Y上级是谁?”

p adam.managed_employees.map {|e| e.name} # => [ "Clem", "Dawn" ]
p adam.mentored_employees # =>
p dawn.mentor.name # => "Clem"


Tags:  rubyonrails安装 rubyforrails rubyrails rubyonrails

延伸阅读

最新评论

发表评论