# Destroy e delete

**URL:** <https://www.ruby-forum.com/t/destroy-e-delete/201063>\
**Category:** IT\
**Created:** [December 29, 2010, 11:21am UTC](https://www.ruby-forum.com/t/destroy-e-delete/201063 "2010-12-29T11:21:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [December 29, 2010, 11:21am UTC](https://www.ruby-forum.com/t/destroy-e-delete/201063/1 "2010-12-29T11:21:19Z")

</div>

Nel database uso sempre i constraints attraverso le foreign keys.  
Ho un Settore uno a molti con Categoria.  
Categoria e’ molti a molti con Fornitore.  
Se cerco di cancellare un settore, attraverso il metodo :destroy, il  
quale ha delle categorie che sono associate ad un fornitore mi viene  
sollevata l’eccezione di violazione dei constraints, giustamente.  
Ho provato ad aggiungere il contraint anche al modello, quindi ho  
messo Sector has\_many :categories, :dependent =\> :destroy.  
A questo punto se cancello un settore mi vengono eliminate anche le  
categorie associate a prescindere dal fatto che esista il contraint  
nel database.  
Se faccio Sector has\_many :categories, :dependent =\> :delete\_all e  
tento di cancellare un Settore con delle Categorie associate mi viene  
risollevata l’eccezione di violazione dei constraints.  
Perche’ il destroy non tiene conto dei constraint?  
Non ho ancora chiara la differenza tra destroy e delete.
