2011-04-13 4 views
18

J'ai une rails 3 app en mode dev qui ne chargera pas les changements que je fais quand il fonctionne webrick. J'ai vérifié les paramètres de mon development.rb et vérifié que je cours en mode de développement.Rails 3 environnement de développement conserve la mise en cache, même sans mise en cache?

config.cache_classes = false 
config.action_controller.perform_caching = false 

i également vérifié mon tmp répertoire pour vous assurer que le dossier cache est vide - je dois encore faire une mise en cache sur le site et ne l'ai jamais mis sur la mise en cache. Im devinant son un problème de chargement avec les fichiers.

également je fonctionnais sur webrick puis installé mongrel et le problème persiste toujours. Je suppose que je suis tombé sur un problème de configuration, mais je ne vois personne d'autre qui publie un tel problème. rien d'autre ne manque?

EDIT: il semble que mes aides à la vue ne sont pas auto-chargeables - ne sont pas des aides par défaut supposées être rechargeables dans les rails 3?

+2

utilisez-vous sur votre projet STI;) – fl00r

+0

@ fl00r, je sais que je suis un peu en retard au jeu ici, mais pourriez-vous donner des détails sur ce point? –

+0

Si vous utilisez STI dans le développement, vous devriez charger automatiquement les classes (cache) ou l'héritage ne fonctionnera pas correctement – fl00r

Répondre

4

J'ai eu une expérience similaire, mais je ne crois pas que c'était avec une classe d'aide réelle, c'était avec tout ce que j'ai écrit dans le répertoire lib/. Si vous avez eu à utiliser une déclaration require 'some_class', alors vous devriez passer à:

require_dependency 'some_class' 

travaillé comme un charme pour moi.

1

Je sais c'est une vieille question, mais pour tous ceux qui viennent ici avec un problème similaire, assurez-vous de ne pas déplacer accidentellement production.rbconfig/environments/-config/initializers/ comme je l'ai fait. Cela fera lire Rails dans le fichier production.rb et remplacer vos paramètres de développement. Oups.

1

Si le problème était le même, il était causé par rails-dev-tweaks gem qui, si vous utilisiez la configuration par défaut de README, désactivait le rechargement de la pile lors des requêtes AJAX.

2

J'ai eu le même problème et voici la solution simple.
Dans vos config/environments/development.rb ensemble des paramètres suivants:

config.action_controller.perform_caching = false 
config.perform_caching = false 
config.cache_store = :null_store 
+0

cela a fonctionné pour moi –

0

J'utilise Rails 4, et mon appel cache a été dans une aide à l'aide Rails.cache.fetch.

Après googler un peu, je trouve cette question (https://github.com/rails/rails/issues/20733), où un PR a été fusionné dans les rails 5 documents pour préciser que «

Modification de la valeur de config.action_controller.perform_caching sera seulement a un effet sur la mise en cache fournie par le composant Action Controller . Par exemple, il n'aura pas d'impact sur la mise en cache de bas niveau, que nous adresse ci-dessous. '

', étant 'mise en cache de bas niveau' Rails.cache.fetch.

Il est sur les docs maintenant: http://guides.rubyonrails.org/caching_with_rails.html