Deviseを導入した際のエラーの対処法!


devise導入の手順

1.Gemファイルに記述する

Gemfile
   gem 'devise'

2.ターミナルで bundle install

3.rails g devise:install コマンド
追加したdeviseというgemの設定関連ファイルが自動で作成されます。

4.rails g devise user

5.rails db:migrate


rails g devise:installコマンドを間違って入力してしまった!

今回のエラーとしては、rails g devise installと誤って入力してしまい
":"をつけ忘れました!
その結果、
installモデルなどが作成されてしまい、
その後rails g devise:install コマンドを正しく入力しても以下のエラー文がでます。

<エラー文>

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

対処法

bundle installの直前の処理まで戻す必要があります!
以下の順番で進めて行きます。

1.routes.rbに記載してあるdevise_for: installsというコードの記述を削除

2.rails db:migrate:statusコマンドでデータベースの状況を確認します
  upになっている場合 → rails db:rollback
 ※downになってる場合はそのまま次の作業に移ります

3.rails d model installを実行
モデルを作成した際に作成された全てのファイルが削除されます。

Running via Spring preloader in process 6570
      invoke  active_record
      remove    db/migrate/20200821050217_create_installs.rb
      remove    app/models/install.rb
      invoke    test_unit
      remove      test/models/install_test.rb
      remove      test/fixtures/installs.yml

※removeと表示されていればokです!

これでbundle installの直前の処理まで戻せました!

このあとの処理の流れ

1.rails g devise:installを実行

Running via Spring preloader in process 6597
      create  config/initializers/devise.rb
      create  config/locales/devise.en.yml

2.rails g devise userコマンドを入力

これで正しくdeviseが導入でき、deviseのuserモデルを作成できました◎