Polymorphic Rails Associances (andando indietro?)
-
22-07-2019 - |
Domanda
Ho un'associazione polimerica di rotaie polimorfe nella mia app per rotaie per un modello 'case'. Ci sono molte cose che hanno dei casi, quindi accedo al caso che ogni cosa ha facendo "thing_that_has_a_case.case".
Tuttavia, sto cercando di andare dall'altra parte e non sono sicuro di come. Ho accesso all'oggetto case ma voglio accedere all'oggetto che viene inserito. Le rotaie hanno un modo per farlo? Potrei farlo con un brutto interruttore che trova un sql diverso per ogni tipo di oggetto, ma speravo che le rotaie avrebbero avuto un modo migliore. Grazie!
Soluzione
Puoi aggiungere qualcosa del genere al tuo modello di caso:
belongs_to :parent, :polymorphic => true
..che presuppone che tu abbia i campi parent_id
e parent_type
nel tuo modello di caso (cambia il primo argomento in appartiene_to
a seconda di come hanno chiamato questi campi di associazione). Una volta ottenuto questo, dovresti essere in grado di fare riferimento a case.parent
per una determinata istanza del caso.
E, solo per chiarire, l'unico lato di questa relazione ha qualcosa di simile:
has_many :cases, :as => :parent, :dependent => :destroy
(Suppongo che tu abbia già funzionato in base alla tua descrizione)