私のアプリケーションでは、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'
ありがとう
Config/application.rbを確認してください。require'devise 'を追加する必要があり、問題ないはずです。
独自のデバイス構成を持つエンジンを作成している場合は、追加するだけです
require 'devise'
デバイスイニシャライザの開始時。私の場合、アプリケーション内にデバイスの要件はありませんでした:)
乾杯
GemfileにDeviseがリストされていることを確認し、bundle install
を実行します。
いくつかのカスタム作業を行うために「new」メソッドをオーバーライドするカスタムデバイスコントローラーがあり、「super」を使用するのを忘れたときに、そのようなエラーが発生しました
カスタムコントローラーはありますか?
同様の問題があり、これを見つけました https://github.com/plataformatec/devise
それはあなたがしなければならないと言います
Rails generate devise:install
そのページの「はじめに」に続いて、私は始めました
この問題が発生したのは、ビューモデルを誤って生成し、routes.rbから削除しなかったためです。
Spec /spec_helper.rbファイルにrequire 'devise'
を追加する必要があり、そのエラーはなくなりました。
devise gemをもう使用していない場合は、削除してください
gem 'devise'
gemfileから削除します
config/initializers/devise.rb
また、デバイスがどこにも使用されていないことを確認してください
config /application.rbにrequire 'yaml'
を追加します。これでうまくいきます。試してみてください
Deviseをインストールした後、いくつかの列を追加し、ユーザーモデルにいくつかの検証を追加しました。エラーメッセージから、Railsは必須ライブラリを見つけることができないため、Deviseを見つけることができません。GithubdeviseWikiページをチェックアウトして、すべての依存関係が満たされていることを確認してください。
それが役に立てば幸い!