J'ai la méthode suivante dans une balayeuse:comportement non déterministe de fragment_cache_key
def expire_topic_articles_cache_for topic_id key = fragment_cache_key :controller => :articles, :action => :index, :topic_id => topic_id Rails.logger.debug "Expire article list cache for topiC#{topic_id}" Rails.logger.debug " using key #{key}" # use RegExp due to the fragment covering multiple pages expire_fragment %r{#{key}} end
Le problème est d'appeler fragment_cache_key. Il renvoie la clé correcte dans un chemin de code, mais il retourne nil dans un autre chemin de code, les deux fois appelé avec le même topic_id, et les deux fois déclenchés par le même contrôleur mais à partir de différents modèles observés.
Cela n'a aucun sens pour moi. Je pense que fragment_cache_key retournera le même résultat pour la même entrée. Il devrait être libre d'effets secondaires étant donné que la même configuration de cache est utilisée (et c'est la même chose dans les deux chemins de code).