Como render cache: JSON
-
26-09-2019 - |
Pergunta
Eu tenho uma ação de índice de controlador que retorna a saída JSON.
render :json => my_array.to_json
Que tipo de armazenamento em cache eu tenho que usar aqui. O 'cache de páginas' faz sentido para isso.
Ou eu tenho que fazer o cache de ação como abaixo
caches_action :index
Solução
O cache de ação ou o cache de páginas funcionaria bem; O cache de páginas teria o benefício de nunca chamar a pilha do Rails, mas depende se você precisa controlar quem acessa esse feed json.
Sou um grande fã de usar o cache de páginas, se você puder se safar - há grandes economias nos recursos do sistema. :)
Editar: Exemplo de cache de páginas, caso haja alguma confusão:
class SomeController < ApplicationController
caches_page :index
def index
render :json => my_array.to_json
end
end
A menos que eu tenha entendido alguma coisa, isso deve ser tudo o que você precisa fazer.
Outras dicas
As mesmas considerações devem ser aplicadas ao JSON como qualquer outra saída. Se você precisar validar o acesso aos dados para o usuário, o cache de ação é o caminho a seguir, caso contrário, o cache da página deve ficar bem.
Se os dados mudarem devido à lógica em seu aplicativo, ambas as formas de armazenamento em cache serão problemáticas e você será melhor usando outra coisa.