2010-10-29 4 views
1

Actuellement, j'utilise la mise en cache de fragments avec une clé d'objet. Et j'expire le cache en utilisant Touch avec les mises à jour de la colonne updated_at, puis le cache actuel devient obsolète. Et un nouveau cache est généré la prochaine fois.Mise en cache des fragments avec Touch

<% cache do product %> 

La clé du cache pour un objet ressemble à ceci

table_name/ID-updated_at 

Maintenant, je veux mettre en cache mes produits ailleurs. Pour ce faire, je voudrais faire la même chose qu'avant qui est simplement donner l'objet dans les options de cache, mais je ne peux pas faire cela :(

Ce serait génial si je pouvais générer une telle clé afin de ont toujours mon cache expiré avec le touch.

table_name/ID-something_updated_at 
<% cache product,something do %> 

Malheureusement, ce n'est pas possible, ce que quelqu'un a une idée de comment je pourrais résoudre mon problème?

Greg

Répondre

1

vous pouvez transmettre ancien tableau vous comme au fragment, donc c'est un changement assez simple à atteindre ce que vous recherchez:

<% cache [product, other, product.updated_at] do %> 
    ... 
<% end %>