Forum: Rails-ES action caching

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Franco B. (Guest)
on 2009-04-29 02:00
(Received via mailing list)
Hola a todos,

  he intentado sin éxito configurar "Action Caching", he visto el
excelente
railscast de RyanBate, pero el tema es que yo tengo un escenario un poco
diferente y no sé muy bien como configurarlo, aca intentó explicar un
poco
el problema:

# app/controllers/catalogs_controller.rb
    . . .
    caches_action :show
     . . .

# app/controllers/admin/catalogs_controller.rb
     . . .
     cache_sweeper :catalog_sweeper, :only => [:create, :update,
:destroy]
     . . .

# app/sweeper/ca

la primer vez que accedo al catálogo "A", obtengo esto en el log, lo
cual
parece estar bien:
  . . .
  Cached fragment miss: views/localhost:3000/catalogs/glow-sticks
  . . .

y si miró el filesystem se creó un archivo en
/public/views/localhost.3000/catalogs/A.cache

la segunda vez que quiero acceder al catálogo "A" obtengo lo siguiente
en el
log y también va todo bien, la página se refresca muy rapido y no hay
problema hasta aca:

   Cached fragment hit: views/localhost:3000/catalogs/a (0.3ms)
    Filter chain halted as
[#<ActionController::Caching::Actions::ActionCacheFilter:0xb5984bac
@options={:cache_path=>nil, :layout=>nil, :store_options=>{}}>]
rendered_or_redirected.
    Filter chain halted as
[#<ActionController::Filters::AroundFilter:0xb5984814 @identifier=nil,
@method=#<ActionController::Caching::Actions::ActionCacheFilter:0xb5984bac
@options=     {:cache_path=>nil, :layout=>nil, :store_options=>{}}>,
@kind=:filter, @options={:if=>nil, :only=>#<Set: {"show"}>,
:unless=>nil}>]
did_not_yield.
   Completed in 62ms (View: 0, DB: 1) | 200 OK
[http://localhost/catalogs/a]


pero cuando voy a la vista para modificar el catálogo, cuando guardo
alguna
modificación veo en el log lo siguiente:

  . . .
  Expired fragment: views/localhost:3000/admin/catalogs/index/a (0.3ms)
  . . .

si lo notan, está marcando como que la página que expiró esta ubicada en
views/localhost:3000/*admin*/catalogs/index/a lo cual no es cierto la
página
está en el mismo path pero sin admin, creo que el tema viene del scope
en
donde se ejecutan los métodos ya que en el video de Ryan B. el mismo
controlador es el que tiene los métodos para mostrar y actualizar.

Intenté ver que pasaba con el siguiente código pero nada paso :(
cache_sweeper :catalog_sweeper, :only => [:create, :update, :destroy],
:cache_path => :index_cache_path.to_proc

  def index_cache_path
      '/public/catalogs'
  end

Tampoco funciono cuando escribí esto:

# config/environment.rb
  . . .
  config.action_controller.page_cache_directory = RAILS_ROOT +
"/public/cache/"
  config.cache_store = :file_store, "#{RAILS_ROOT}/public"
  . . .

alguién sabe como se puede cambiar el lugar en donde se almacenan las
páginas cacheadas para que apunten al mismo lado? que pasará si pongo
esto
en producción, es decir, localhost.3000 en que se convertiría?

Saludos y espero que alguién pueda ayudarme.
This topic is locked and can not be replied to.