# Chiarimenti su has\_many :through

**URL:** <https://www.ruby-forum.com/t/chiarimenti-su-has-many-through/106119>\
**Category:** IT\
**Created:** [June 6, 2007, 5:03pm UTC](https://www.ruby-forum.com/t/chiarimenti-su-has-many-through/106119 "2007-06-06T17:03:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![fire-dragon-dol](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/f/43a26b/32.png) [@fire-dragon-dol](https://www.ruby-forum.com/u/fire-dragon-dol)\
**Post date:** [June 6, 2007, 5:03pm UTC](https://www.ruby-forum.com/t/chiarimenti-su-has-many-through/106119/1 "2007-06-06T17:03:19Z")

</div>

Allora, supponiamo che io ho questi modelli :

Categoria  
has\_many :sottocategorie

Sottocategoria  
belongs\_to :categoria  
has\_many :articles

Articolo  
belongs\_to :sottocategoria

E ho le seguenti tabelle :

Categoria  
Nome

Sottocategoria  
Nome, categoria\_id

Articolo  
Nome, sottocategoria\_id

Ok, avendo impostato cosÃ¬ io so che rails mi permette di fare una cosa  
del tipo Sottocategoria.articoli e mi tira fuori tutti gli articoli che  
appartengono a quella sottocategoria. Credo di potere fare anche  
Categoria.Sottocategoria(id).articoli (passo l’id ma credo funzioni con  
ogni find, chi me lo conferma?).

Ora quello che mi chiedo Ã¨ : che differenza c’Ã¨ se sostituissi gli  
has\_many con degli has\_many :through ?

Seconda domanda, che c’entra piÃ¹ con la progettazione del database, mi  
consigliate di lasciare la tabella Articolo cosÃ¬ come Ã¨ oppure di  
inserirci pure un campo categoria\_id?

Terza domanda, ho visto l’opzione :dependent =\> :destroy delle  
associazioni has\_many, mi chiedevo funziona anche a cascata? CioÃ¨ se io  
chiamo un destroy su una categoria, mi cancella anche tutte le sue  
sottocategorie “figlie”? E a sua volta a cascata mi cancellerebbe anche  
tutte gli articoli che fanno parte delle sottocategorie “figlie” della  
categoria sulla quale ho chiamato il destroy?

Chiedo scusa per la serie di domande ma sarÃ l’inglese, saranno gli  
esempi poco chiari, sarÃ la documentazione rails che trovo un pÃ² misera  
rispetto a ciÃ² a cui ero abituato con php/mysql, ma mi pare che alcune  
azioni che compio potrebbero forse essere compiute molto piÃ¹ facilmente  
capendo meglio queste semplici cose.
