Ich verwende das folgende Low-Level-Caching für die fünf neuesten Nachrichtenartikel in meiner Rails-Anwendung:
@recent_news = Rails.cache.fetch("recent_news", :expires_in => 1.hour) do
News.order("created_at desc").limit(5)
end
Gibt es eine Möglichkeit, diese Abfrage im Cache zu behalten, bis ein neuer Nachrichtenartikel erstellt wird? Ich habe daran gedacht, den Cache manuell mithilfe eines Beobachters zu invalidieren, war mir aber nicht sicher, ob es eine Möglichkeit gibt, dies tatsächlich zu tun, z.B:
class NewsObserver < ActiveRecord::Observer
def after_create
#expire recent_news cache
end
end