Introduction
Controllers
Models
Vues
Aller plus loin
Travaux Pratiques
TP : Gestion des animauxRéservé aux membres premiums
57 min
TP : Gestion des photosRéservé aux membres premiums
46 min
TP : Création du système de FollowersRéservé aux membres premiums
52 min
Les gems utiles
Notions avancées

La mise en cache permet de stocker le contenu généré lors d'une requête afin de le réutiliser lors de la réponse à une requête similaire. Le cache est donc un moyen efficace d'améliorer les performances de l'application. Rails fournit plusieurs manières de travailler avec le cache mais nous allons nous intérésser plus spécifiquement au Fragment caching aujourd'hui.

Fragment Caching

Comme son nom l'indique le Fragment caching consiste à mettre en cache des "morceau" de notre application.

<%= cache "clef" do %>
  # Code à mettre en cache
<% end %>

Son fonctionnement est relativement simple. Un objet qui implémente la méthode cache_keyou to_params peut aussi être utilisé comme clef. Ainsi il est possible d'utiliser une entité pour la mise en cache.

<%= cache post do %>
  # post.cache_key => "post/5-20071224150000"
<% end %>

Cette méthode permet d'utiliser le champs updated_at en tant que clef et ainsi d'invalider le cache lorsque l'entité est modifiée. Il est d'ailleurs possible d'utiliser la mise en cache directement lors de l'utilisation de la méthode render :

render partial: 'posts/post', collection: @posts, cached: true