Rails ed il riciclo delle variabili

Ciao a tutti,
ho un grandissimo problema di ignoranza: se creo un sito in rails ci
sono alcune variabili che mi servono in tutte le view… un esempio?

“Il menu”

mi chiedo è possibile portarsi dietro questa variabile SENZA RISCRIVERE
all’interno di ogni istanza “@menu = Menu.find(:all)”?

Spero di essere stato il più chiaro possibile…

Andrea
il newbbone

On Mer, Ottobre 17, 2007 11:17, Andrea R. wrote:

mi chiedo è possibile portarsi dietro questa variabile SENZA
RISCRIVERE
all’interno di ogni istanza “@menu = Menu.find(:all)”?

Puoi utilizzare qualche meccanismo di caching, tipo il fragment caching.

Nico

Ciao,

Andrea R. wrote:

mi chiedo è possibile portarsi dietro questa variabile SENZA RISCRIVERE
all’interno di ogni istanza “@menu = Menu.find(:all)”?

credo che potresti usare un before_filter, ma mi sembra e migliore di
scrivere un helper, tipo:

def menu
Menu.find(:all)
end

Se messi il helper nel “application_helper.rb”, sarà disponibile pur
tutti i view.

Ciao,
Daniel


Daniel H.
[email protected]
Net7 http://www.netseven.it/

Discovery Project

Bring Rails to Italy!
http://www.railstoitaly.org/

Ciao Daniel,
Innanzi tutto grazie per la risposta…

credo che potresti usare un before_filter, ma mi sembra e migliore di
scrivere un helper, tipo:

def menu
Menu.find(:all)
end

Ma gli helper non funzionano al contrario? nel senso che gli passi una
variabile e loro ti producono codice?

helper(@variabile)

Se creo un helper che è in se stesso una variabile poi come lo richiamo?

l’idea è bella e pulita… ma capisco come applicarla in pratica :frowning:

Ciao,

Ma gli helper non funzionano al contrario? nel senso che gli passi una
variabile e loro ti producono codice?

helper(@variabile)

Se creo un helper che è in se stesso una variabile poi come lo richiamo?

l’idea è bella e pulita… ma capisco come applicarla in pratica :frowning:

Si, di solito gli helper sono usato per creare codice, in quel caso
restituiscono gli string. Per esempio:

<%= render(…) %>

→ render restituisce uno string, e lo string e messo nel template.

Però, gli helper sono semplice methodi, e possono restituire ogni tipi
di oggetti. Quindi, se hai questo helper “method”, puoi fare:

<% for this_menu in menu %>

→ “menu” restituisce una collezione che puoi usare nel “for”

Ciao,
Daniel


Daniel H.
[email protected]
Net7 http://www.netseven.it/

Discovery Project

Bring Rails to Italy!
http://www.railstoitaly.org/