Ho cercato di utilizzare le funzionalità di memorizzazione nella cache dei binari, ma non riesco a espirare alcuni frammenti di cache sebbene sembrino scadere. Utilizzando come sottolineato nelle rotaie sito di tutorial la 'bambola russa Caching', io sto usando questa configurazioneRails 4.0 expire_fragment/scadenza cache non funzionante
<% 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%>
mi scadono il caching esterno nel controller release_controller.rb, dove io uso expire_fragment ("all_available_releases") per espira il frammento. Lo uso in ogni metodo del controller che aggiorna o cancella o aggiunge una voce.
Questo è il registro di WEBrick, dove sebbene il frammento di scadenza venga registrato, 5 righe dopo il frammento scaduto viene letto e utilizzato mentre non dovrebbe. Questo esempio è dopo una chiamata di distruzione.
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)
Ho anche provato ad utilizzare Rails.cache.delete("all_available_releases")
e non ha funzionato neanche.
se elimino <%cache "all_available_releases"%>
(e uno <%end%>
) dal mio html.erb il caching funziona bene e diventa scaduto ogni volta che dovrebbe.
Questo era esattamente il mio problema, grazie. –
Questo mi ha causato così tanti problemi. Grazie! – Finbarr
Grazie, dove è documentato? – bonyiii