手动过期低级缓存

时间:2013-07-24 17:55:03

标签: ruby-on-rails-3 caching

我正在使用以下低级缓存来处理我的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

1 个答案:

答案 0 :(得分:15)

您可以使用.delete方法手动过期缓存:

Rails.cache.delete("recent_news")