Question

J'ai construit une application en utilisant le plugin Hérité_Resource et il est prêt à entrer dans la production.

Maintenant, je cherche des moyens d'implémenter la mise en cache pour la même application. Comme j'ai des fragments de la page qui dépendent du Current_User, je vais utiliser le mécanisme de mise en cache des fragments.

Quelqu'un peut-il me fournir un pointeur ou une ressource qui aide à implémenter la mise en cache des fragments pour les vues et les contrôleurs basés sur HÉRÉRÉSORCE?

Merci, Ajay Kumar G

Était-ce utile?

La solution

Je n'utilise pas Hérité_Resources, mais je comprends que ce n'est qu'un raccourci pour les contrôleurs. Vos opinions doivent être standard, auquel cas vous pouvez utiliser la mise en cache des fragments comme décrit dans le Guide des Rails à http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching

Avez-vous essayé cela? Si cela ne fonctionne pas, montrez à quoi ressemblent vos opinions.


Éditer: Réponse au commentaire.

Ah ok, donc en général si vous utilisez la mise en cache des fragments, il n'a pas de sens de ne pas appeler l'action du contrôleur, car vous n'aurez pas de variables définies, et s'il n'y a pas de variables, pourquoi n'utilisez-vous pas la mise en cache de page?

Afin d'empêcher les requêtes de tirer, ActiveRecord 3.0 avec Arel est votre ami. Par exemple, si vous mettez @posts = post.where (: publié => true) dans votre action, il ne sera pas appelé avant d'appeler @ postes.each dans la vue, donc si vous mettez cela à l'intérieur du bloc de cache, il sera Ne soyez jamais appelé. Je ne suis pas sûr de ce que fait par défaut Hérité_Resources, mais étant donné qu'il est écrit par José Valim, j'imagine qu'il utiliserait cette fonctionnalité d'ACTIVERECORD par défaut, sinon c'est facile à personnaliser. Vous pouvez le tester en activant la mise en cache pour votre environnement de développement et en regardant les journaux pour voir quelles requêtes sont licenciées.

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