4.7 - Eliminazione dei modelli

Vedi tutte le pagine e le modifiche recenti o scarica i sorgenti nella pagina


L’eliminazione di un modello è sempre l’operazione più rapida da eseguire anche se deve essere attentamente valutata in quanto un modello eliminato dal database non è più recuperabile in nessun modo.

ActiveRecord espone tre diversi metodi per l’eliminazione, di cui due di classe e uno di istanza. Partiamo da quest’ultimo.

Il metodo d’istanza per eliminare un modello è destroy (API) che elimina il record sul quale è stato invocato il metodo:

team = Team.find(1)
team.destroy
team = Team.find(1) #lancerà un'eccezione

I metodi di classe invece vengono utilizzati quando non è necessario instanziare l’oggetto prima di eliminarlo.

Il metodo delete (API) riceve un ingresso un id o un array di id e si incarica di eliminarli:

Team.delete(1) #elimina record con id = 1
Team.delete([1,2,3]) #elimina record con id = 1, id = 2 e id = 3

Il metodo destroy_all (API) permette invece di eliminare record che matchano una determinata condizione passata come parametro al metodo:

Team.destroy_all("balance < 100")

Guida RoR

4.6 – Aggiorniamo i modelli già esistenti

Updated on October 12, 2009 18:24 by Ruby Fan (78.15.110.190)