Rails 4.0 expire_fragment / cache expiration funktioniert nicht

Ich habe versucht, die Caching-Funktionen von Rails zu nutzen, aber ich kann einige Cachefragmente nicht ablaufen lassen, obwohl sie anscheinend ablaufen. Ich verwende diese Konfiguration, indem ich das 'Russian Doll Caching' verwende, wie in der Rails-Tutorial-Site beschrieben

<% cache "all_available_releases" do %>
 <% @releases.each do |release| %>
  <% cache(release) do %>
   <html code with>
   <%ruby code @release.name blah blah blah%>
  <%end%>
 <%end%>
<%end%>    

Ich verwende das äußere Caching im release_controller.rb-Controller, wo ich expire_fragment ("all_available_releases") verwende, um das Fragment zu verwerfen. Ich verwende es in jeder Methode des Controllers, die einen Eintrag aktualisiert, löscht oder hinzufügt.

Dies ist das Protokoll von WEBrick, in dem das abgelaufene Fragment zwar registriert wird, jedoch 5 Zeilen später gelesen und verwendet wird, obwohl dies nicht der Fall sein sollte. Dieses Beispiel ist nach einem Zerstörungsaufruf.

Processing by ReleasesController#destroy as HTML
  Parameters: {"authenticity_token"=>"***/***/********************+********=", "id"=>"2"}
  Release Load (0.1ms)  SELECT "releases".* FROM "releases" WHERE "releases"."id" = ? LIMIT 1  [["id", "2"]]
   (0.1ms)  begin transaction
  SQL (2.0ms)  DELETE FROM "releases" WHERE "releases"."id" = ?  [["id", 2]]
   (148.0ms)  commit transaction
Expire fragment views/all_available_releases (0.1ms)
Redirected to http://127.0.0.1:3000/releases
Completed 302 Found in 180ms (ActiveRecord: 150.2ms)


Started GET "/releases" for 127.0.0.1 at 2013-07-03 13:09:51 +0300
Processing by ReleasesController#index as HTML
Read fragment views/all_available_releases/41cb0a928326986f35f41c52bb3d8352 (0.1ms)
  Rendered releases/index.html.erb within layouts/application (0.6ms)
Completed 200 OK in 5ms (Views: 4.0ms | ActiveRecord: 0.0ms)

Ich habe es sogar versuchtRails.cache.delete("all_available_releases") und es hat auch nicht funktioniert.

wenn ich lösche<%cache "all_available_releases"%> (und ein<%end%>) aus meiner html.erb funktioniert das cachen einwandfrei und läuft wann immer es sollte ab.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage