# Best practice per passaggio di molte variabili alla view

**URL:** <https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953>\
**Category:** IT\
**Created:** [December 8, 2009, 6:07pm UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953 "2009-12-08T18:07:53Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pm3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pm3](https://www.ruby-forum.com/u/pm3)\
**Post date:** [December 8, 2009, 6:07pm UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953/1 "2009-12-08T18:07:53Z")

</div>

Supponiamo che un controller debba passare una dozzina di variabili ad  
una view. Tra una cosa e l’altra il metodo del controller diventa  
necessariamente piuttosto grosso.

In mancanza di helper per i controller (fare metodi privati nel  
controller stesso o in application\_controller mi piace poco) una  
strategia che ho usato Ã¨ creare un modello slegato dal db che encapsuli  
la logica del metodo del controller, istanziarlo, fargli fare quel che  
deve e passarlo alla view che poi ne estrarrÃ dagli attributi i valori  
che le servono.

In questo modo il controller rimane magro, per contro si aggiunge un  
livello di indirettezza sia nel controller sia nella view rallentando la  
lettura del codice.

Mi chiedevo se ci sono alternative e se ci sono best practice  
riconosciute.

Grazie!  
Paolo

---

<div class="post-metadata">

**Author:** ![pm3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pm3](https://www.ruby-forum.com/u/pm3)\
**Post date:** [December 8, 2009, 6:11pm UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953/2 "2009-12-08T18:11:53Z")

</div>

un hash in sessione?

---

<div class="post-metadata">

**Author:** ![pm3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pm3](https://www.ruby-forum.com/u/pm3)\
**Post date:** [December 8, 2009, 8:12pm UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953/3 "2009-12-08T20:12:14Z")

</div>

Andrea C. wrote:

> un hash in sessione?

Un hash di istanza, perchÃ¨ scomodare la sessione?  
A me non piace creare un model per questo scopo, mi piace meno che i  
metodi privati del controller. Se la logica da sharare Ã¨ tanta e non  
conviene inserirla nel relativo model o sotto l’application controller,  
io farei moduli o classi da mettere sotto lib

---

<div class="post-metadata">

**Author:** ![pm3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pm3](https://www.ruby-forum.com/u/pm3)\
**Post date:** [December 10, 2009, 9:48am UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953/4 "2009-12-10T09:48:02Z")

</div>

Marco M. wrote:

> A me non piace creare un model per questo scopo, mi piace meno che i  
> metodi privati del controller. Se la logica da sharare Ã¨ tanta e non  
> conviene inserirla nel relativo model o sotto l’application controller,  
> io farei moduli o classi da mettere sotto lib

In effetti Ã¨ possibile che la lib sia una soluzione filosoficamente  
migliore. Il metodo perÃ² Ã¨ praticamente identico. Googlando ho anche  
trovato quest’alternativa:  
[http://groups.google.ca/group/rubyonrails-talk/browse\_thread/thread/cd4b0bbfa6671ae7?fwc=1](http://groups.google.ca/group/rubyonrails-talk/browse_thread/thread/cd4b0bbfa6671ae7?fwc=1)  
E’ un po’ fuori standard perchÃ© prevede la creazione di una nuova dir  
app/controller\_helpers (ma si potrebbe anche usare app/helpers) perÃ²  
quasi quasi mi piace di piÃ¹. Ci devo pensare.

Grazie a tutti!  
Paolo

---

<div class="post-metadata">

**Author:** ![pm3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pm3](https://www.ruby-forum.com/u/pm3)\
**Post date:** [December 10, 2009, 10:56am UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953/5 "2009-12-10T10:56:05Z")

</div>

Passare tante variabili e’ un po’ sospetto… quantomeno passerei un hash  
o  
ancora meglio un oggetto.  
Siccome questi valori probabilmente mapperebbero su attributi dei  
modelli,  
potrebbe essere utile un approccio tipo presenter pattern (  
[Jay Fields' Thoughts: Rails: Presenter Pattern](http://blog.jayfields.com/2007/03/rails-presenter-pattern.html)) o  
comunque  
qualcosa basato sulla delegation… poi se metterli in  
controller\_helpers o  
lib e’ questione di gusti… io propenderei per lib.

Ciao

2009/12/10 Paolo M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![pm3](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/a87d85/32.png) [@pm3](https://www.ruby-forum.com/u/pm3)\
**Post date:** [December 12, 2009, 11:51am UTC](https://www.ruby-forum.com/t/best-practice-per-passaggio-di-molte-variabili-alla-view/179953/6 "2009-12-12T11:51:29Z")

</div>

Sto leggendo i post sul pattern presenter. Avevo fatto qualcosa di  
simile per certe parti di una mia applicazione ma l’approccio che  
descrivono Ã¨ piÃ¹ generale e sembra essere quel che mi serve.

Grazie!  
Paolo

Luca De Marinis wrote:

> Passare tante variabili e’ un po’ sospetto… quantomeno passerei un hash  
> o  
> ancora meglio un oggetto.  
> Siccome questi valori probabilmente mapperebbero su attributi dei  
> modelli,  
> potrebbe essere utile un approccio tipo presenter pattern (  
> [Jay Fields' Thoughts: Rails: Presenter Pattern](http://blog.jayfields.com/2007/03/rails-presenter-pattern.html)) o  
> comunque  
> qualcosa basato sulla delegation… poi se metterli in  
> controller\_helpers o  
> lib e’ questione di gusti… io propenderei per lib.
> 
> Ciao
> 
> 2009/12/10 Paolo M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)
