Wie kann ich die cache-Methode mit Ruby/Rails?

Habe ich eine teure (zeitaufwendig), externe Anforderung mit einem anderen web-service, den ich machen muss, und ich möchte zwischengespeichert. Also habe ich versucht, auf diese idiom, indem Sie den folgenden in der application-controller:

def get_listings
  cache(:get_listings!)
end

def get_listings!
  return Hpricot.XML(open(xml_feed))
end

Wenn ich rufe get_listings! in meinem controller ist alles cool, aber wenn ich Anrufe get_listings Schienen sich beschwert, dass kein block gegeben wurde. Und wenn ich sehe, dass die Methode, die ich sehen, dass er tatsächlich erwarten, dass ein block, und zusätzlich wie es aussieht, ist diese Methode nur für den Einsatz in Aussicht? Also ich vermute, dass, obwohl es war nicht angegeben, daß das Beispiel ist nur pseudocode.

Also meine Frage ist, wie kann ich den cache so etwas? Ich habe versucht, verschiedene andere Möglichkeiten, aber konnten nicht es herauszufinden. Danke!

Schreibe einen Kommentar