2010-01-28 8 views
2

J'utilise beaucoup la mise en cache de fragments et il est essentiel pour moi de bonnes performances. Cependant, en raison de la complexité de la mise en cache que j'utilise, je dois offrir à mes testeurs un moyen de désactiver/activer la mise en cache en tant que variable de session. (Sur la base de l'utilisateur uniquement)Rails - Meilleure façon de mettre en œuvre la mise en cache de fragmentation optionnelle à des fins de test

Je pensais implémenter un cache_disabled? méthode, et je vérifie maintenant sa valeur partout où j'utilise le cache. Maintenant, je suis coincé avec la pièce suivante de la mise en cache, et je ne peux pas comprendre comment intégrer bien cette vérification:

<% cache(@cache_key_for_consultContent) do %> 
    <div id="consult"> 
       <%= render :partial => 'LOTS_OF_CONTENT' %> 
    </div> 
<% end %> 

J'ai besoin du contenu à appeler lorsque la mise en cache est désactivé ou le contenu n'est pas mis en cache encore.

merci pour votre créativité! (S'il vous plaît garder sec)

Répondre

3

Dans votre aide de l'application, vous pouvez essayer:

def optional_cache(key, &block) 
    cache(key, &block) unless session[:disable_caching] 
end 

Remplacez ensuite vos appels cache() avec optional_cache().

+0

Je savais que je me sentirais comme si la réponse est si évidente ;-) Merci mon pote! – user62605

+2

Pas de problème, parfois vous avez juste besoin de quelqu'un pour signaler l'évidence parce que vous êtes trop pris dans d'autres choses. Cela m'arrive tout le temps ;) – jonnii

Questions connexes