Salve a tutti,
sto affrontando il caching con la mia applicazione, per farla breve, ho
2 controller che si occupano di gestire un modello Page, il primo
amministra (CRUD) le pagine (/admin/pages/), l’altro viene usato per
la sola fruizione (/pages/).
naturalmente, mi interessa il caching in fruizione, quindi nel
controller di fruizione (PagesController) ho messo questo (ho solo
questa action):
caches_action :show
in quello di amministrazione (Admin::PagesController), invece, c’è lo
sweeper:
cache_sweeper :page_sweeper, :only => [:update, :destroy]
a sua volta, lo sweeper (page_sweeper.rb) è definito in questo modo:
class PageSweeper < ActionController::Caching::Sweeper
observe Page
def after_update(page)
expire_action(:controller => :pages, :action => :show, :id =>
page.id)
logger.info(“aggiornamento cache…”)
end
def after_destroy(page)
expire_action(:controller => :pages, :action => :show, :id =>
page.id)
end
end
fin qui tutto ok, ho attivato il caching ed ho lanciato il server, la
prima chiamata ad una pagina genera la relativa cache. dai log e dal
filesystem ho la certezza che il caching funziona.
il problema lo incontro quando modifico una pagina, in questo caso la
cache non viene cancellata perchè quando ricarico la pagina in fruizione
continuo a vedere la vecchia cache :-/
lo sweeper viene chiamato di sicuro, perchè compare il mio messaggio nei
log, ma il risultato non cambia.
qualcuno di voi saprebbe dirmi come risolvere? giusto per completezza,
uso rails 2.3.3
grazie in anticipo
A.