# Cicli for nel controller, problema con le view

**URL:** <https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615>\
**Category:** IT\
**Created:** [December 7, 2006, 9:42am UTC](https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615 "2006-12-07T09:42:05Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![giovanno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@giovanno](https://www.ruby-forum.com/u/giovanno)\
**Post date:** [December 7, 2006, 9:42am UTC](https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615/1 "2006-12-07T09:42:05Z")

</div>

Ciao a tutti, una riunione ha piÃ¹ sessioni, una sessione ha piÃ¹  
relazioni, ogni relazione ha un solo relatore. Voglio avere la lista di  
tutti i relatori con sotto a ciascuno le relazioni di cui Ã¨ relatore  
dentro quella sessione.  
Se nel controller faccio un ciclo che mi riempie i due vettori @contacts  
e @relations chiaramente ad ogni ripartenza del ciclo questi due vettori  
vengono sovrascritti e nel view finale io vedo solo le informazioni  
relative all’ultimo relatore. C’Ã¨ un modo per far sÃ¬ che prima di  
ricominciare il ciclo i dati immagazzinati vengano passati comunque alla  
view? Grazie mille, Giovanni Zangrillo.

---

<div class="post-metadata">

**Author:** ![giovanno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@giovanno](https://www.ruby-forum.com/u/giovanno)\
**Post date:** [December 7, 2006, 9:53am UTC](https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615/2 "2006-12-07T09:53:52Z")

</div>

No non c’è modo. Devi cambiare i cicli in modo da collezionare tutto  
quello  
che ti serve e mandarlo alla pagina in una botta sola.  
Paolo

On 12/7/06, giovanno [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 

–  
Paolo D.’  
SeeSaw | Another point of view

> **[A Padova il buon software chi lo fa?](https://seesaw.it/)**
>
> A creare software sono tantissimi, a farlo molto bene c’è una certa schiera di sviluppatori, ma a costruirlo un pezzo alla volta insieme al cliente, plasmarlo sulle sue esigenze e renderlo parte di un nuovo approccio al mondo del lavoro sono davvero...

removed\_email\_address@domain.invalid  
personal [http://paolodona.blogspot.com](http://paolodona.blogspot.com)

---

<div class="post-metadata">

**Author:** ![giovanno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@giovanno](https://www.ruby-forum.com/u/giovanno)\
**Post date:** [December 7, 2006, 10:01am UTC](https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615/3 "2006-12-07T10:01:53Z")

</div>

Non so se ho capito bene cmq se tutti questi modelli sono in  
relazione tra loro puoi puoi semplicemente fare (ad esempio)

@contacts = Contact.find(:all, :include =\> :relations)

Nella view ti fai un bel

render(:partial =\> “contact”, :collection =\> @contacts)

E nel partial (\_contact.rhtml) fai

- \<%= h contact.name %\> \<% contact.relations.each do |relation| %\> 
- \<%= h relation.name %\>

Il giorno 07/dic/06, alle ore 09:42, giovanno ha scritto:

---

<div class="post-metadata">

**Author:** ![giovanno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@giovanno](https://www.ruby-forum.com/u/giovanno)\
**Post date:** [December 7, 2006, 10:35am UTC](https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615/4 "2006-12-07T10:35:59Z")

</div>

giovanno [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> Se nel controller faccio un ciclo che mi riempie i due vettori @contacts  
> e @relations chiaramente ad ogni ripartenza del ciclo questi due vettori  
> vengono sovrascritti e nel view finale io vedo solo le informazioni  
> relative all’ultimo relatore. C’Ã¨ un modo per far sÃ¬ che prima di  
> ricominciare il ciclo i dati immagazzinati vengano passati comunque alla  
> view? Grazie mille, Giovanni Zangrillo.

Chiaramente puoi concatenare i risultati.

@contacts, @relations = Array.new, Array.new

meeting.sessions.each { |session|  
@relations += session.talks  
@contacts += session.talks.map { |talk| talk.author }  
}

Un post molto recente parlava di eager loading che Ã¨ una tecnica che  
ti permette di rendere piÃ¹ efficiente (i.e. fare meno query) tale  
recupero di informazioni.

Se non ti Ã¨ chiaro cosa fa lo snippet soprariportato puoi leggere il  
capitolo [http://www.rubycentral.com/book/tut\_containers.html](http://www.rubycentral.com/book/tut_containers.html)

Ciao

---

<div class="post-metadata">

**Author:** ![giovanno](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@giovanno](https://www.ruby-forum.com/u/giovanno)\
**Post date:** [December 7, 2006, 5:33pm UTC](https://www.ruby-forum.com/t/cicli-for-nel-controller-problema-con-le-view/78615/5 "2006-12-07T17:33:01Z")

</div>

giovanno wrote:

> Ciao a tutti, una riunione ha piÃ¹ sessioni, una sessione ha piÃ¹  
> relazioni, ogni relazione ha un solo relatore. Voglio avere la lista di  
> tutti i relatori con sotto a ciascuno le relazioni di cui Ã¨ relatore  
> dentro quella sessione.  
> Se nel controller faccio un ciclo che mi riempie i due vettori @contacts  
> e @relations chiaramente ad ogni ripartenza del ciclo questi due vettori  
> vengono sovrascritti e nel view finale io vedo solo le informazioni  
> relative all’ultimo relatore. C’Ã¨ un modo per far sÃ¬ che prima di  
> ricominciare il ciclo i dati immagazzinati vengano passati comunque alla  
> view? Grazie mille, Giovanni Zangrillo.

Grazie davvero a tutti, proverÃ² a vedere cosa si puÃ² fare…mi rifarÃ²  
vivo,Giovanni.
