has_one与同一个班级的关系

jas*_*unk 5 activerecord ruby-on-rails

我有以下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
Run Code Online (Sandbox Code Playgroud)

我通过迁移将"mom_id"和"dad_id"作为整数添加到我的模型中.然而,当我使用rails console,我不能够访问momdad设置属性后mom_iddad_id.他们仍然回来nil.

什么指向我做错了什么?

Nat*_*han 8

我同意@Andrew,这应该是 belongs_to

belongs_to :mom, :class_name => "Person", :foreign_key => "mom_id"
belongs_to :dad, :class_name => "Person", :foreign_key => "dad_id"
Run Code Online (Sandbox Code Playgroud)