1

Dans mon projet, je l'ai écrit quelques classes sous le dossier lib mais rails ne détecte pas les classes dans l'environnement de production. Je reçois l'erreur Constant non-initialisée.classes sous dossier lib ne sont pas détectés dans des rails

J'utilise Apache dans l'environnement de production et rails script/serveur dans l'environnement de développement.

quelque chose de mal avec l'environnement RAILS_ROOT? Quelqu'un peut-il suggérer comment surmonter ce problème?

Répondre

1

Je ne suis pas sûr de Rails, mais vous réalisez que Ruby par ceci: (il fonctionnera dans des rails aussi, mais rails doit être d'avoir une certaine façon élégante)

require File.join(File.dirname(__FILE__), "lib",'your_module_name') 
include your_module_name 

Essayez ceci dans config/application.rb (I supposons que vous avez rails3)

config.load_paths += %W(#{config.root}/lib) 

Mise à jour: Rails - why would a model inside RAILS_ROOT/lib not be available in production mode?

+0

en fait, je suis confronté à ce problème que dans un environnement de production, son travail bien dans env développement, une raison – sharath

+0

actualisé. Êtes-vous en train de migrer de rails2 à rails3? – zengr

+0

non j'utilise des rails 2.3.2 – sharath

0

Assurez-vous que le nom de votre fichier correspond au nom de la classe ou d'un module défini, et acco unting pour tous les répertoires.

-à-dire:

lib/my_new_class.rb 

class MyNewClass 
end 

Ou si vous avez une hiérarchie de répertoires:

lib/my_files/my_module.rb 

module MyFiles 
    module MyModule 
    end 
end