2012-10-31 14 views
5

Nella nostra applicazione abbiamo sovrascritto il metodo di distruzione ActiveRecord in modo che i nostri record non vengano cancellati (quindi l'utente può annullare l'eliminazione). In questo modo:Triggering dependent:: destroy con metodo destroy sovrascritto

def destroy 
    self.is_deleted = true 
    self.save 
    freeze 
end 

Tuttavia, questo sembra aver disabilitato il dipendente distruggere le nostre has_many relazioni. In altre parole, se destroy viene chiamato su un oggetto padre, gli oggetti figlio di has_many non vengono distrutti (non vengono eliminati, ad esempio, "DELETE...", né il metodo destroy sottoposto a override viene chiamato).

Come attivare la distruzione degli oggetti figlio.

Grazie!

risposta

6

È necessario attivare il richiamo di annullamento.

def destroy 
    self.is_deleted = true 
    self.save 
    run_callbacks :destroy 
    freeze 
end 
+0

Grazie! Questo è esattamente quello che mi mancava. :) –

Problemi correlati