Wie man rendert: json
-
26-09-2019 - |
Frage
Ich habe eine Controller -Indexaktion, die die JSON -Ausgabe zurückgibt.
render :json => my_array.to_json
Welche Art von Caching muss ich hier verwenden. Ist "Seite zwischengespeichert" Sinn dafür.
Oder muss ich Action wie unten wie unten durchführen
caches_action :index
Lösung
Entweder Aktionen zwischengespeichert oder das Seiten zwischen Seiten würde gut funktionieren. Page Caching hätte den Vorteil, dass Sie den Rails Stack nie anrufen, aber es hängt davon ab, ob Sie steuern müssen, wer auf diesen JSON -Feed zugreift.
Ich bin ein großer Fan von Page Caching, wenn Sie damit durchkommen können - es gibt große Einsparungen bei Systemressourcen. :)
Bearbeiten: Seite Caching -Beispiel, falls es Verwirrung gab:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
Wenn ich etwas nicht missverstanden habe, sollte das alles sein, was Sie tun müssen.
Andere Tipps
Gleiche Überlegungen sollten für JSON wie jede andere Ausgabe gelten. Wenn Sie den Zugriff auf die Daten für den Benutzer validieren müssen, ist das Action -Caching der richtige Weg, sonst sollte das Seiten zwischen Seite in Ordnung sein.
Wenn sich die Daten aufgrund der Logik in Ihrer App ändert, sind beide Formen des Caching problematisch und Sie sind besser damit, etwas anderes zu verwenden.