LoginSignup
46
40

More than 5 years have passed since last update.

Rails: deviseをインストールした後のエラー

Last updated at Posted at 2018-08-27

エラーの内容・原因・対処方法をまとめました。

作業内容

gem 'devise'を追加して、rails g devise userのコマンドでuserモデルを作成していたところ、rake db:migrateでエラーになった。

エラーの内容

`method_missing': undefined method `devise' for User (call 'User.connection' to establish a connection):Class (NoMethodError)

「Userモデルに対するdeviseメソッドなんて無いよ!」という感じですね。

原因

どうやら、rails g devise install をする前に、rails g devise user をしてしまっていたようでした。

正しい作業手順:
1. gem 'devise'を追加
2. bundle install
3. rails s でローカルサーバー再起動
4. rails g devise:install ←ここができていなかった。
5. rails g devise user
6. rake db:migrate

対処方法

まず、下記の手順で作業手順4.の直前の状態に戻した後、再度正しくdeviseをインストールしました。
1. routes.rb から devise_for :users の記述を削除(作業手順5.で記述されたもの)
2. rails d model user を行い、userモデルを削除(これも作業手順5.で作成されたもの)
3. rails g devise:install
以降、正しくコマンドを実行

うまくいきました!

参考:
gemのdeviseをインストールした直後のエラー

46
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
40