Rails caching: Ersatz für expires_in auf Schienen.cache.Holen
Was ist der beste Weg zu bereinigen, diese Warnung, während die Kürze des "get-oder set -" caching nennen? Ich mag nicht zu tun, eine bekommen, prüfen Sie, ob null -, dann set...
# DEPRECATION WARNING: Setting :expires_in on read has been deprecated in favor of setting it on write.
@foo = Rails.cache.fetch("some_key", :expires_in => 15.minutes) do
some stuff
end
- Ich will nur zu beachten, dass mit Rails 4, es ist eher ein trend in Richtung Russian-doll-caching, in denen es keinen Ablauf der Zeit notwendig. Ablauf der Zeit kann noch leichter werden, aber das ist manchmal ein anti-Muster jetzt.
- Rails 4 nicht geben, eine deprecation-Warnung für die syntax.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie wollen es vermeiden, dass bei jedem Anruf, aber Sie haben noch zu tun, zumindest einmal. Etwas einfaches wie diese kann für Sie arbeiten:
Dann in Ihren Ansichten, die Sie tun können:
Beachten Sie, dass die Schienen-cache-Speicher hat eine Standard-Ablauf der Zeit, die Sie festlegen können, wenn Sie es schaffen, so können Sie nicht außer Kraft setzen müssen, dass bei jedem Aufruf, es sei denn, Sie benötigen auch unterschiedliche Laufzeiten.
Kleine änderungen der hilfreiche Methode zur Verfügung gestellt von @briandoll:
Verwenden
http://apidock.com/rails/ActionController/ConditionalGet/fresh_when
und
http://apidock.com/rails/ActionController/ConditionalGet/expires_in
scheinen Ihre einzige option aus dem, was ich finden kann.