45
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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をインストールした直後のエラー

45
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
45
40

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?