2017-05-16 1 views
2

J'ai une application Rails qui fonctionne très bien en développement. Il accède à une classe que j'ai dans mon dossier /lib en raison de la dans mon application.rb fichier de configuration en ligneHeroku Production: config.autoload_paths ne semble pas fonctionner

config.autoload_paths += Dir["#{config.root}/lib/**/"] 

. Cependant, lorsque je lance l'application en production sur Heroku, j'obtiens une erreur Uninitialized Constant.

Par exemple en cours d'exécution rails c localement:

>rails c 
001> OrderPdf 
=> OrderPdf 
002> 

mais sur la production:

>heroku run rails c 
001> OrderPdf 
NameError: uninitialized constant OrderPdf 
(stack trace) 
002> 

ce qui se passe ici?

Répondre

0

c'est parce que vous avez probablement cette ligne dans votre config config.eager_load = true , qui charge toutes vos classes une fois avant.

Pour résoudre ce problème, tout ce que vous ajoutez à la autoload_path, ajouter au chemin de eager_load ainsi

config.eager_load_paths += Dir["#{config.root}/lib/**/"]