Frage

Dieser hat mich ratlos.

Ich habe eine Ansicht mit einem Cache gespeicherten Fragmente:

 - cache :key=>"news" do    
   %h2 News
   - etc

Ich habe eine Kehrmaschine, die verwendet:

def expire_home_cache
  puts "expire_home_cache"
  expire_fragment(:key => "news") 
end

Die Kehrmaschine genannt wird, wie ich „expire_home_cache“ in der Ausgabe der Konsole sehen kann.

Aber das Fragment wird nicht aktualisiert ...

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie könnten versuchen, diese:

   cache("news") do    
     %h2 News
     - etc
   end

und ...

def expire_home_cache
  puts "expire_home_cache"
  expire_fragment("news") 
end

... oder versuchen, diese ...

 - cache({:key=>"news"}) do    
   %h2 News
   - etc

Ich denke das Problem, dass Rubin sein kann oder Schienen sind die Bestimmung, eine harte Zeit, was der Schlüssel ist, genau und so das Cache-Verfahren und expire_fragment erzeugen zwei verschiedenen Cache-Schlüssel.

Andere Tipps

Versuchen expire_fragment(:key => "news") mit ActionController::Base.new.expire_fragment(:key => "news") ersetzen

Keine Zeit zu erklären, aber es funktioniert für mich.

Der richtige Weg, dies zu tun ist:

cache :news do

  ...
end

Und dann in Ihrer Kehrmaschine:

expire_fragment :news

Dies ist nicht direkt beantworten Ihre Frage, aber haben Sie versucht, die timed_fragment_cache Plugin als Alternative?

http://github.com/tricycle/timed_fragment_cache/tree/master

Ich finde dies eine viel einfachere Art und Weise zu sein, Fragmente in meinen Projekten auslaufender.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top