Ho giocato con STI e appartiene a/has_many relazioni e sono un po 'confuso.Domanda Rails: appartiene a STI - come faccio a farlo correttamente?
Ho un paio di domande basate su una configurazione modello simile a:
class Parental < ActiveRecord::Base
end
class Mother < Parental
has_many :babies
end
class Father < Parental
has_many :babies
end
class Baby < ActiveRecord::Base
belongs_to :??????
end
- Che cosa dovrebbe
Baby
belong_to? - In termini di migrazione, cosa devo nominare/aggiungere per chiave esterna su nella tabella
babies
? - Ho avuto difficoltà a ricercare questo, esiste una fonte definitiva che spiega questo? I documenti API non sembrano averlo colpito in testa O mi sono perso (il che è totalmente possibile).
Il mio primo pensiero è aggiungere parental_id
per babies
insieme a un metodo come Baby#owner
che fa la seguente:
- Hits self.parental
- Determina il tipo di genitori
- Restituisce il corretto tipo di parentale (potrebbe essere una madre, potrebbe essere un padre)
Tha tu no!
Grazie per la risposta. Potrei disturbarti a guardare @ il mio aggiornamento e commentare questa soluzione?sembra meno ingombro da tavolo, ma potrebbe essere completamente sbagliato. –
Certo, ho commentato la soluzione 'parental_id', che non funzionerà. – jefflunt
AH! Questo ha perfettamente senso. Grazie ancora. Ho contrassegnato la tua risposta come la soluzione. Ho un follow up q che, spero, non sia un problema. Come hai detto, in questa situazione hai davvero bisogno di DUE proprietari come un bambino (a parte Gesù) avrà sempre due genitori. Che cosa fai quando l'oggetto di proprietà può appartenere solo a 1 proprietario? Per esempio, dì un 'Post' e il setup STI è' Author', 'LivingAuthor