2010-05-12 13 views
9

Tengo una acción de índice del controlador que devuelve la salida json.Cómo copiar el procesamiento: json

render :json => my_array.to_json 

Qué tipo de almacenamiento en caché tengo que usar aquí. ¿Tiene sentido el "almacenamiento en caché de páginas" para esto?

O tengo que hacer caché de acción, como a continuación

caches_action :index 

Respuesta

3

cualquier acción o almacenamiento en caché caché de páginas que funcionan bien; El almacenamiento en caché de páginas tendría el beneficio de no llamar nunca a la pila de Rails, pero depende de si necesita controlar quién accede a esa fuente de Json.

Soy un gran admirador de usar el almacenamiento en caché de páginas si puede salirse con la suya; hay grandes ahorros en recursos del sistema. :)


EDIT: Página ejemplo, el almacenamiento en caché, en caso de que hubiera cualquier tipo de confusión:

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

A menos que he entendido mal algo, que debería ser todo lo que necesita hacer.

+0

cómo especifico el caché de páginas para json. No tengo ninguna plantilla en mi opinión? – user290870

+0

Debería poder especificarlo en el controlador y agregar el código a mi respuesta. – robotmay

+0

gracias !. Pensé que el almacenamiento en caché de páginas requería el nombre de la vista almacenada en caché como argumento para 'caches_page' en lugar de la acción. – user290870

2

Las mismas consideraciones deberían aplicarse a JSON como cualquier otra salida. Si necesita validar el acceso a los datos para el usuario, entonces el caché de acción 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, entonces ambas formas de almacenamiento en caché son problemáticas y es mejor utilizar otra cosa.

+1

cómo especifico el caché de páginas para json. No tengo ninguna plantilla en mi opinión? – user290870

Cuestiones relacionadas