手动使低级缓存过期

Noz*_*Noz 10 caching ruby-on-rails-3

我正在使用以下低级缓存来处理我的Rails应用程序中的五篇最新新闻文章:

@recent_news = Rails.cache.fetch("recent_news", :expires_in => 1.hour) do
  News.order("created_at desc").limit(5)
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在创建新的新闻文章之前保持此查询缓存?我正在考虑使用观察者手动使缓存过期,但不确定是否有办法实际执行此操作,例如:

class NewsObserver < ActiveRecord::Observer
  def after_create
    #expire recent_news cache
  end
end
Run Code Online (Sandbox Code Playgroud)

MrT*_*rus 17

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

Rails.cache.delete("recent_news")
Run Code Online (Sandbox Code Playgroud)