Archive for the 'Rails 2.2' Category

ActiveSupport::Memoizable Cache löschen

Auch wenn es vielen von vorn herein klar ist, mir war es nicht sofort klar :)

Das tolle Memoizable in Rails 2.2 macht das Caching von Methoden einfacher. Ich bin dabei auf eine Frage gestoßen:

Wie lösche ich den Cache?

Als ich mir den Quellcode von Memoizable angeschaut habe, dachte ich auf den ersten Blick, dass memoize_all ALLE Methoden einer Klasse memoizen würde und unmemoize_all alles wieder deaktiviert.

Nun, tatsächlich löscht unmemoize_all nur den gesamten Cache und er wird automatisch mit jedem Aufruf einer Methode Stück für Stück wieder aufgebaut. Wenn man also z. B. eine Änderung vornimmt, sollte man unmemoize_all ausführen.

memoize_all hingegen, führt alle gecachten Methoden auf einmal aus (!) und speichert die Ergebnisse im Cache. Aber das kann doch nicht sein, oder? Kann mir das hier mal jmd. erklären :)