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!

È stato utile?

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)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top