2009/9/28 Nicolás Sanguinetti <[email protected]>

> 2009/9/28 Martin Aceto <[email protected]>:
> > Hola como están todos.
> >
> > Estoy tratando de utilizar cache_page en un website que tiene gettext
> para
> > la traducción, pero al cambiar de idioma no me muestra los html's
> correctos,
> > solo muestra el cache hecho por primera vez en el idioma por default.
> >
> > Alguien se encontró con este problema ? Alguna idea de como solucionarlo
> ?
> >
> > Supongo que esto se debe a que los html tienen todos el mismo nombre y
> las
> > url's son las mismas, por lo cual al existir el html en public muestra lo
> > que tiene en el cache en vez de ir a generar uno nuevo con el idioma
> seteado
> > en la variable locale.
>

yo tuve ese mismo problema y lo solucione asi, (disclaimer: soy bastante
nuevo en esto asi que probablemente haya una mejor solución)

    <% cache(cache_fragment_name('catalog_' + @catalog.permalink)) do %>
        # fragment here
    <% end %>

y el helper  "cache_fragment_name"  hace lo siguiente

  # Returns the name taken in 'name' with the sufix '_ca', '_us' or nothing
in relation with the session[:country] variable
  def cache_fragment_name(name)
      add_sufix = ''
    case session[:country]
        when 'CA': add_sufix = '_ca'
        when 'US': add_sufix = '_us'
    end
    name + add_sufix
  end

es decir esto para el catalog llamado "test" te genera "catalog_test_ca" o
"catalog_test_us" o solo "catalog_test", obviamente previamente tuve que
guardar el country en la session del usuario que esta navegando.

Bueno, espero que te sirva de algo,
saludos.
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a