2010-03-09 19 views
7

quindi ho molti controller e molte viste.come rendere una variabile vista in tutte le viste - rotaie

voglio che la mia variabile @random_quote venga valutata ogni volta che viene caricata ogni vista.

Ho provato diverse cose nel controller dell'applicazione (ho pensato che dovrebbe essere qui?) Ma nessuno di loro ha funzionato.

quindi come faccio a collegare questi due: @random_quote.body (in view) e

@random_quote = Quote.find(:random) (regolatore giusto?)

a BEE visto attraverso tutta la mia domanda?

grazie per le vostre risposte!

risposta

13

Dubito che sia effettivamente necessario che sia accessibile in tutte le visualizzazioni. Ma puoi inserire @random_quote = Quote.find(:random) con un metodo chiamato con before_filter nel tuo ApplicationController. Sarà quindi accessibile ovunque.

Come così:

before_filter :get_random_quote 
def get_random_quote 
    @random_quote = Quote.find(:random) 
end 
+0

funziona in questo modo grazie. ho anche capito che posso anche metterlo nel controller dell'applicazione (senza prima del filtro). qual è in realtà la differenza. è meglio metterlo in aiuto? grazie ancora! – user275447

+0

Supponevo che volessi generare il preventivo una volta per pagina. Se vuoi ogni volta un nuovo preventivo, non hai bisogno di before_filter. –

Problemi correlati