web-dev-qa-db-ja.com

webrickサーバーの実行時に初期化されていない定数デバイス名エラーが発生するのはなぜですか?

私のアプリケーションでは、Ruby 1.9.2およびRails 3.0.3を使用し、Devise gemもインストールしました。問題は、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'

ありがとう

14
Addicted

Config/application.rbを確認してください。require'devise 'を追加する必要があり、問題ないはずです。

16
Marshall Shen

独自のデバイス構成を持つエンジンを作成している場合は、追加するだけです

require 'devise'

デバイスイニシャライザの開始時。私の場合、アプリケーション内にデバイスの要件はありませんでした:)

乾杯

15
m4risU

GemfileにDeviseがリストされていることを確認し、bundle installを実行します。

5
Luke

いくつかのカスタム作業を行うために「new」メソッドをオーバーライドするカスタムデバイスコントローラーがあり、「super」を使用するのを忘れたときに、そのようなエラーが発生しました

カスタムコントローラーはありますか?

3
jpwynn

同様の問題があり、これを見つけました https://github.com/plataformatec/devise

それはあなたがしなければならないと言います

Rails generate devise:install

そのページの「はじめに」に続いて、私は始めました

2
C. Louis S.

この問題が発生したのは、ビューモデルを誤って生成し、routes.rbから削除しなかったためです。

1
LiffeyD

Spec /spec_helper.rbファイルにrequire 'devise'を追加する必要があり、そのエラーはなくなりました。

1
cam_271

devise gemをもう使用していない場合は、削除してください

gem 'devise'

gemfileから削除します

config/initializers/devise.rb 

また、デバイスがどこにも使用されていないことを確認してください

1
Muhammad Aqeel

config /application.rbにrequire 'yaml'を追加します。これでうまくいきます。試してみてください

Deviseをインストールした後、いくつかの列を追加し、ユーザーモデルにいくつかの検証を追加しました。エラーメッセージから、Railsは必須ライブラリを見つけることができないため、Deviseを見つけることができません。GithubdeviseWikiページをチェックアウトして、すべての依存関係が満たされていることを確認してください。

それが役に立てば幸い!

0
Marshall Shen