我一直在尝试使用rails的缓存功能,但我无法过期某些缓存片段,虽然它们似乎过期了。使用“俄罗斯套娃缓存”在轨为指出教程网站,我使用这个配置Rails 4.0 expire_fragment/cache过期不起作用
<% 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%>
我到期的release_controller.rb控制器,在这里我用expire_fragment(“all_available_releases”)外缓存来到期片段。我用它来更新或删除或添加条目的控制器的每种方法。
这是WEBrick的日志,虽然过期的片段获得注册,但5行后,过期的片段被读取和使用,而不应该。这个例子是在一个销毁电话之后。
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)
我甚至使用Rails.cache.delete("all_available_releases")
尝试,它也不能工作。
如果我从我的html.erb中删除<%cache "all_available_releases"%>
(和一个<%end%>
),那么缓存工作正常,只要应该就会过期。
这正是我的问题,谢谢。 –
这给我带来了很多麻烦。谢谢! – Finbarr
谢谢,这是记录在哪里? – bonyiii