レンダリングをキャッシュする方法:JSON
-
26-09-2019 - |
質問
JSON出力を返すコントローラーインデックスアクションがあります。
render :json => my_array.to_json
ここで使用する必要があるキャッシュの種類。これについては「ページキャッシュ」は理にかなっていますか。
または、以下のようにアクションキャッシュを行う必要がありますか
caches_action :index
解決
アクションキャッシュまたはページキャッシュのいずれかが正常に機能します。ページキャッシングは、レールスタックを呼び出すことは決してないという利点がありますが、そのJSONフィードに誰がアクセスするかを制御する必要があるかどうかによって異なります。
あなたがそれを逃れることができるなら、私はページキャッシングを使用することの大ファンです - システムリソースには大きな節約があります。 :)
編集:ページキャッシングの例、混乱があった場合に備えて:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
私が何かを誤解していない限り、それはあなたがする必要があるすべてであるべきです。
他のヒント
他の出力と同じ考慮事項がJSONに適用されるはずです。ユーザーのデータへのアクセスを検証する必要がある場合は、アクションキャッシングが進む方法です。そうしないと、ページキャッシュは問題ありません。
アプリのロジックによりデータが変更された場合、両方のフォームのキャッシュに問題があり、他の何かを使用する方が良いでしょう。
所属していません StackOverflow