has_one与同一个班级的关系

时间:2012-06-10 04:26:01

标签: ruby-on-rails activerecord

我有以下Person类,其父级也是另一个人。我似乎无法弄清楚如何让关系发挥作用。

class Person < ActiveRecord::Base
  attr_accessible :mom, :dad

  has_one :mom, :class_name => 'Person', :primary_key => "mom_id", :foreign_key => "id"
  has_one :dad, :class_name => 'Person', :primary_key => "dad_id", :foreign_key => "id"    
end

我已通过迁移将“mom_id”和“dad_id”作为整数添加到我的模型中。但是,当我使用rails console时,在设置momdad后,我无法访问mom_iddad_id个属性。他们仍然会返回nil

指出我做错了什么?

1 个答案:

答案 0 :(得分:8)

我同意@Andrew,这应该是belongs_to

belongs_to :mom, :class_name => "Person", :foreign_key => "mom_id"
belongs_to :dad, :class_name => "Person", :foreign_key => "dad_id"