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.
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 [email protected] wrote:
–
Paolo D.’
SeeSaw | Another point of view
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
Il giorno 07/dic/06, alle ore 09:42, giovanno ha scritto:
giovanno [email protected] 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
Ciao
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.