[Ror-es] Cache de fragmentos y operaciones del controlador

Agustin Nicolas Viñao Laseras
Tue Feb 2 18:40:32 GMT 2010


Podes solucionarlo en el controlador verificando si existe el fragmento de
la siguiente manera:
#Controller
def accion
  unless fragment_exist?(*key*)
    # Operaciones de calculo, etc.
      @text = .....
  end
end

#Vista
<%cache(*key*) do%>
  <%= @text %>
<%end%>

El "*key*" es una clave que das al fragmento, esa la podes armar vos.
Poniendo por ejemplo "listado_mayores_ventas" o lo que se te ocurra si es
algo asi, sino podes usar el metodo cached_key de AR si estas usando datos
de modelos.

sl2
_______________________
        Agustin Viñao
www.agustinvinao.com.ar
   agustinvinao (Skype)


2010/2/1 Albert Callarisa 

> Saludos a todos.
>
> Tengo una dura con cache de fragmentos y no se me ocurre una solución.
>
> En el controlador tengo una serie de operaciones sobre la variable
> que envío a la vista (en este caso es solo uno, @text ya que es para páginas
> estáticas) y en la vista simplemente tengo algo así:
>
> <% cache do %>
>   <%= @text %>
> <% end %>
>
> El problema es que en el controlador siempre seguiré haciendo todo lo
> necesario para obtener @text por lo que no gano nada.
>
> Lo único que se me ha ocurrido es hacer todas las operaciones en la vista,
> dentro del método 'cache' pero sería un error.
>
> La cache de página y de acción las he descartado porque en la cabecera de
> la aplicación hay cosas propias de la sesión del usuario.
>
> A alguien se le ocurre como debería hacer esto?
>
> Gracias.
>
>
> --
> Albert Callarisa Roca
> http://www.acroca.com
>
> _______________________________________________
> Proudly free of Ruby Forum crossposting since 01/07/2009
> Ror-es mailing list
> 
> 
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20100202/05906d3f/attachment.htm