This one has me stumped.
I have a view with a cached fragment:
- cache :key=>"news" do
%h2 News
- etc
I have a sweeper that uses:
def expire_home_cache
puts "expire_home_cache"
expire_fragment(:key => "news")
end
The sweeper is called as I can see "expire_home_cache" in the console output.
But the fragment is not updated ...
Any ideas?
You might try this:
and...
...or try this ...
I am thinking the issue may be that ruby or rails is having a hard time determining what the key is exactly and so the cache method and expire_fragment are generating two different cache keys.
This doesn't directly answer your question, but have you tried the timed_fragment_cache plugin as an alternative?
http://github.com/tricycle/timed_fragment_cache/tree/master
I found this to be a much simpler way of expiring fragments in my projects.
The proper way to do this is:
And then in your sweeper:
Try replacing
expire_fragment(:key => "news")
withActionController::Base.new.expire_fragment(:key => "news")
No time to explain, but it worked for me.