Pregunta

Tengo una acción de índice de controlador que devuelve la salida JSON.

render :json => my_array.to_json

¿Qué tipo de almacenamiento en caché tengo que usar aquí? ¿El 'almacenamiento en caché de la página' tiene sentido para esto?

¿O tengo que hacer almacenamiento en caché de acción como a continuación?

caches_action :index
¿Fue útil?

Solución

Ya sea el almacenamiento en caché de la acción o el almacenamiento en caché de la página funcionaría bien; El almacenamiento en caché de la página tendría el beneficio de nunca llamar a la pila de Rails, pero depende de si necesita controlar quién accede a esa alimentación JSON.

Soy un gran admirador de usar el almacenamiento en caché de la página si puedes salirse con la suya, hay grandes ahorros en los recursos del sistema. :)


EDITAR: Ejemplo de almacenamiento en caché de la página, en caso de que hubiera alguna confusión:

class SomeController < ApplicationController
  caches_page :index
  def index
    render :json => my_array.to_json
  end
end

A menos que haya entendido mal algo, eso debería ser todo lo que necesitas hacer.

Otros consejos

Las mismas consideraciones deben aplicarse a JSON como cualquier otra salida. Si necesita validar el acceso a los datos para el usuario, entonces Action Waching es el camino a seguir; de lo contrario, el almacenamiento en caché de la página debería estar bien.

Si los datos cambian debido a la lógica en su aplicación, ambas formas de almacenamiento en caché son problemáticas y es mejor que use otra cosa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top