Question

I ont une action de l'index de commande qui sortie json retours.

render :json => my_array.to_json

Quel type de mise en cache dois-je utiliser ici. Est-ce que la mise en cache de la page «faire pour ce sens.

Ou dois-je faire la mise en cache d'action comme ci-dessous

caches_action :index
Était-ce utile?

La solution

Soit la mise en cache d'action ou la mise en cache de la page fonctionnerait très bien; la mise en cache de la page aurait l'avantage de ne jamais appeler la pile Rails, mais cela dépend si vous avez besoin de contrôler qui accède à ce flux JSON.

Je suis un grand fan de la mise en cache de page si vous pouvez vous en sortir avec elle - il y a de grandes économies sur les ressources du système à avoir. :)


EDIT: exemple de la mise en cache de page, dans le cas où il y avait une confusion:

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

À moins que je l'ai mal compris quelque chose, cela devrait être tout ce que vous devez faire.

Autres conseils

Les mêmes considérations devraient appliquer à JSON que toute autre sortie. Si vous avez besoin d'accéder validate aux données de l'utilisateur, la mise en cache d'action est la voie à suivre, sinon la mise en cache de la page doit être bien.

Si les données changent en raison de la logique dans votre application, puis les deux formes de mise en cache sont problématiques et vous feriez mieux d'utiliser autre chose.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top