MENU

【Rails】deviseインストールしてエラーになったら

「devise」をインストールして早速使おうと思ってみたらエラーが出ました…。

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

思い返してみると、ある作業が抜けていました。

rails db:migrate

「マイグレーション」です。
この一連の作業の間に他のコマンドを使っていたりするとエラーになってしまい、終わったと思いきや使えない状態になります。

bundle install
rails g devise:install
rails g model user
rails db:migrate

そこで、万が一、「マイグレーション」を忘れたときのための復旧方法が以下になります。


目次

解決方法!

  1. 「/config/routes.rb」の「devise_for :users」を削除します。
  2. 「rails db:rollback」を実行して「マイグレーションファイル」をロールバックします。
  3. ロールバックを確認したら、「user」テーブルが入ったマイグレーションファイルごと削除!
  4. 「rails d model user」を実行して「user」モデルも削除します。

これで、deviseをインストールする前の状態に戻ることができたので、
再度、「rails g devise:install」のコマンドから手順を踏んで行けば正常に動くようになります。

よかったらシェアしてね!

この記事を書いた人

目次
閉じる