Frage

Jedes Beispiel von caches_action Ich habe gesehen, wie es aussieht:

caches_action, :expires_in => 5.minutes

aber ich würde gerne einstellen expires_in basierend auf der Ablaufzeit eines in der Aktion verwendeten Objekts.Gibt es eine Möglichkeit, beim Festlegen auf dieses Objekt zu verweisen expires_in da das betreffende Objekt basiert auf params zur Aktion geschickt?

Ich habe versucht zu benutzen

caches_action, :expires_in => Object.find(params[:id])

aber leider lässt es mich dort nicht auf Parameter verweisen.Vorschläge willkommen!

War es hilfreich?

Lösung

Sieht so aus, als müssten Sie einen Prozess verwenden, der die Parameter des Controllers übergeben kann.Hier ist ein Beispiel

caches_action :show, cache_path: Proc.new {|controller_instance| "some_cache_path_that_is_uniq/#{controller_instance.params[:id]}"}

Andere Tipps

Der Hauptpunkt des Aktions-Cachings besteht darin, zu verhindern, dass bei jedem Eingang einer neuen Anforderung Aktionen ausgeführt werden.Sofern nicht explizit definiert, werden Parameter nicht berücksichtigt.

Wenn Sie basierend auf Instanzen zwischenspeichern möchten, würde ich Folgendes vorschlagen Bedingte Gets.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top