Ruby on rails Rails-属于多个(同一类)-如何访问父级和子级

Ruby on rails Rails-属于多个(同一类)-如何访问父级和子级,ruby-on-rails,model,has-many,self,belongs-to,Ruby On Rails,Model,Has Many,Self,Belongs To,我正在尝试构建一个引用相同模型的模型,问题是我无法访问父属性和子属性 模型是: class Socio < ActiveRecord::Base attr_accessible :socio_padre_id belongs_to :socio_padre, :class_name => "Socio", :foreign_key => "socio_id" has_many :socios_hijo, :class_name => "Socio" end

我正在尝试构建一个引用相同模型的模型,问题是我无法访问父属性和子属性

模型是:

class Socio < ActiveRecord::Base
  attr_accessible :socio_padre_id

  belongs_to :socio_padre, :class_name => "Socio", :foreign_key => "socio_id"
  has_many :socios_hijo, :class_name => "Socio" 
end 
您可以使用祖先宝石: 因为您想要构建一个树数据结构。该模型应具有父id和子id

其他可能性是使用自连接关系:

1.9.2p320 :049 >   Socio.last.socio  (tab)
Socio.last.socio                            Socio.last.socio_padre_id?                  Socio.last.socio_path
Socio.last.socio=                           Socio.last.socio_padre_id_before_type_cast  Socio.last.socio_url
Socio.last.socio_ids                        Socio.last.socio_padre_id_change            Socio.last.socios
Socio.last.socio_ids=                       Socio.last.socio_padre_id_changed?          Socio.last.socios=
Socio.last.socio_padre_id                   Socio.last.socio_padre_id_was               Socio.last.socios_path
Socio.last.socio_padre_id=  

1.9.2p320 :049 >   Socio.last.socio_padre
  Socio Load (1.0ms)  SELECT "socios".* FROM "socios" ORDER BY "socios"."id" DESC LIMIT 1
NoMethodError: undefined method `socio_padre' for #<Socio:0x00000004430fe0>
belongs_to :socio_padre, :class_name => "Socio" 
has_many :socios_hijo, :class_name => "Socio" , :foreign_key => "socio_padre_id"