🙄

deviseインストール後の/users/sign_upの表示エラー解決

2023/04/22に公開

やりたいこと

  • 認証機能の確認をする
  • /users/sign_up へアクセス

発生しているエラー

エラーまでにしたこと

  1. devise をインストール
  2. deviseのモデルを作成

確認したこと

migrateの確認

routes.rbのdevise_for :users追加の確認!

Rails.application.routes.draw do
  devise_for :users
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
  root to: "homes#top"
end

解決までにしたこと

もう一度bundleとdeviseとモデルインストール

downしてるmigrationがあるので再度migrate
スキーマを見たらmigrateできていないことに気付く。

AddDeviseToUsersのマイグレーションが、usersテーブルに重複するemailカラムを作成しようとしているため発生しているエラーを発見。エラーを修正するには、AddDeviseToUsersのマイグレーションファイルで、重複しているemailカラムの定義を削除する必要があと考えた。

db/migrate/ディレクトリにある20230422005331_add_devise_to_users.rbを削除する。

rails db:migrate:status
rails db:migrate:down VERSION=20230422005331

rails db:migrate

これでマイグレーションが成功!
スキーマを確認するとしっかり定義されている。

一度サーバーを落として、再度起動すると

成功!!

正しくdeviseがインストールされてなかったようです。

Discussion