web-dev-qa-db-fra.com

pourquoi est-ce que je reçois une constante non initialisée Nom de nom Erreur lors de l'exécution du serveur Webrick?

Dans mon application, j'ai utilisé Ruby 1.9.2 et Rails 3.0.3 et j'ai également installé Devise gem.Le problème commence lorsque je lance le serveur Webrick.

       /home/app/Workspace/project/Library_Management/Library_Management/config/initializers/devise.rb:3:in `<top (required)>': uninitialized constant Devise (NameError)
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/engine.rb:201:in `block (2 levels) in <class:Engine>'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/engine.rb:200:in `each'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/engine.rb:200:in `block in <class:Engine>'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/initializable.rb:25:in `instance_exec'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/initializable.rb:25:in `run'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/initializable.rb:50:in `block in run_initializers'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/initializable.rb:49:in `each'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/initializable.rb:49:in `run_initializers'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/application.rb:134:in `initialize!'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/application.rb:77:in `method_missing'
from /home/app/Workspace/project/Library_Management/Library_Management/config/environment.rb:5:in `<top (required)>'
from /home/app/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/site_Ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
from /home/app/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/site_Ruby/1.9.1/rubygems/custom_require.rb:54:in `require'
from /home/app/Workspace/project/Library_Management/Library_Management/config.ru:3:in `block in <main>'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/builder.rb:46:in `instance_eval'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/builder.rb:46:in `initialize'
from /home/app/Workspace/project/Library_Management/Library_Management/config.ru:1:in `new'
from /home/app/Workspace/project/Library_Management/Library_Management/config.ru:1:in `<main>'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/builder.rb:35:in `eval'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/builder.rb:35:in `parse_file'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/server.rb:162:in `app'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/server.rb:253:in `wrapped_app'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/rack-1.2.3/lib/rack/server.rb:204:in `start'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/commands/server.rb:65:in `start'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/commands.rb:30:in `block in <top (required)>'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/commands.rb:27:in `tap'
from /home/app/.rvm/gems/Ruby-1.9.2-p180/gems/railties-3.0.9/lib/Rails/commands.rb:27:in `<top (required)>'
from /home/app/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/site_Ruby/1.9.1/rubygems/custom_require.rb:58:in `require'
from /home/app/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/site_Ruby/1.9.1/rubygems/custom_require.rb:58:in `rescue in require'
from /home/app/.rvm/rubies/Ruby-1.9.2-p180/lib/Ruby/site_Ruby/1.9.1/rubygems/custom_require.rb:35:in `require'

Merci

14
Addicted

Si vous écrivez un moteur qui a sa propre configuration, ajoutez simplement

require 'devise'

sur le début de l’initialiseur. Dans mon cas, je n'avais aucune exigence de conception dans l'application :)

À votre santé

15
m4risU

Vérifiez votre config/application.rb, vous devez ajouter besoin de 'carte' et tout ira bien.

15
Marshall Shen

Assurez-vous que vous avez répertorié Devise dans votre Gemfile et exécutez bundle install.

4
Luke

J'ai eu une telle erreur quand j'ai eu un contrôleur de schéma personnalisé pour remplacer la "nouvelle" méthode pour faire des choses personnalisées, et j'ai oublié d'utiliser "super"

Avez-vous un contrôleur personnalisé?

3
jpwynn

J'ai eu un problème similaire et j'ai trouvé ceci https://github.com/plataformatec/devise

Il dit que vous devez faire

Rails generate devise:install

Après "Getting Started" sur cette page, je suis parti

2
C. Louis S.

Je viens d'avoir ce problème, c'est parce que j'ai généré un modèle de vue par erreur et je ne l'ai pas supprimé de mes routes.rb

1
LiffeyD

J'ai dû ajouter require 'devise' dans le fichier spec/spec_helper.rb et cette erreur a disparu.

1
cam_271

si vous n'utilisez plus de gemme de carte alors retirez

gem 'devise'

de gemfile et supprimer

config/initializers/devise.rb 

assurez-vous également que le produit n'est utilisé nulle part

1
Muhammad Aqeel

Dans votre config/application.rb, ajoutez require 'yaml'. Ça marche pour moi. Essayez

0

J'ai ajouté quelques colonnes après l'installation de Devise et des validations dans mon modèle utilisateur. D'après le message d'erreur, il semble que Rails ne puisse pas trouver la bibliothèque essentielle, donc il ne peut pas trouver Devise. Peut-être vérifiez-vous la page Wiki de Github invente et assurez-vous que toutes les dépendances sont satisfaites?

J'espère que ça aide!

0
Marshall Shen