2010-03-09 6 views
7

, así que tengo muchos controladores y muchas vistas.cómo hacer que una variable se vea en todas las vistas: rieles

quiero que mi variable @random_quote sea evaluada cada vez que se carga cada vista.

intenté varias cosas en el controlador de la aplicación (¿pensé que debería estar aquí?) Pero ninguna de ellas funcionó.

así que ¿cómo puedo conectar estos dos: @random_quote.body (in view) y

@random_quote = Quote.find(:random) (en el controlador de la derecha?)

para su visualización a través de toda mi solicitud?

¡gracias por tus respuestas!

Respuesta

13

Dudo que realmente necesite que esté accesible en todas las vistas. Pero puede poner @random_quote = Quote.find(:random) bajo un método llamado con before_filter en su ApplicationController. Entonces será accesible en todas partes.

así:

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

funciona de esta manera gracias. También me di cuenta de que también puedo ponerlo en el controlador de aplicaciones (sin filtro anterior). cuál es realmente la diferencia ¿Es mejor ponerlo en ayuda? ¡gracias de nuevo! – user275447

+0

Supuse que quería generar el presupuesto una vez por vista de página. Si quiere una nueva cotización cada vez, entonces no necesita el before_filter. –

Cuestiones relacionadas