Ho la seguente classe Person
che ha un genitore che è anche un'altra persona. Non riesco a capire come far funzionare le relazioni.ha_una relazione con la stessa classe
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
Ho aggiunto "mom_id" e "dad_id" come numeri interi al mio modello con una migrazione. Tuttavia, quando uso il rails console
, io non sono in grado di accedere mom
o dad
attributi dopo le impostazioni mom_id
e dad_id
. Restano ancora nil
.
Eventuali suggerimenti su cosa sto facendo male?
Se lo fai numero infinito non sarà la persona oggetti essere creato di volte. 'Person1 ha una persona che ha un'altra persona che ha una terza persona e così via ...' – ShaggyInjun
Beh, i database sono così grandi che non possono essere infiniti ... ma in teoria, sì. Questo è solo un semplice esempio del mio caso d'uso effettivo che tuttavia non ha questo problema. – jasonlfunk
'has_one' non significa che un modello deve avere un altro modello. In realtà significa che può avere al massimo un oggetto. – cdesrosiers