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
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top