我正在使用以下低级缓存来处理我的Rails应用程序中最近的五篇新闻文章:
@recent_news = Rails.cache.fetch("recent_news", :expires_in => 1.hour) do
News.order("created_at desc").limit(5)
end
有没有办法在创建新的新闻文章之前保持此查询缓存?我在考虑使用观察者手动使缓存过期,但不确定是否有办法实际执行此操作,例如:
class NewsObserver < ActiveRecord::Observer
def after_create
#expire recent_news cache
end
end
答案 0 :(得分:15)
您可以使用.delete
方法手动过期缓存:
Rails.cache.delete("recent_news")