Rails的 - 片段缓存未到期
-
23-08-2019 - |
题
此一个已我难住了。
我有一个缓存片段的视图:
- cache :key=>"news" do
%h2 News
- etc
我有一个使用一个清扫器:
def expire_home_cache
puts "expire_home_cache"
expire_fragment(:key => "news")
end
的清扫机被称为我可以在控制台输出请参阅“expire_home_cache”。
但不更新片段...
任何想法?
解决方案
您可以试试这个:
cache("news") do
%h2 News
- etc
end
和...
def expire_home_cache
puts "expire_home_cache"
expire_fragment("news")
end
...或尝试此...
- cache({:key=>"news"}) do
%h2 News
- etc
我想的问题可能是红宝石或轨道是有一个很难确定密钥是究竟等高速缓存的方法和expire_fragment正在生成两个不同的缓存键。
其他提示
尝试用expire_fragment(:key => "news")
替换ActionController::Base.new.expire_fragment(:key => "news")
没有时间解释,但它为我工作。
要做到这一点的合适的方法是:
cache :news do
...
end
,然后在机:
expire_fragment :news
这并不直接回答你的问题,但你有没有试过timed_fragment_cache插件作为替代?
http://github.com/tricycle/timed_fragment_cache/tree/master
我发现这是在我的项目到期片段的更简单的方法。
不隶属于 StackOverflow