ユーザー管理機能作成 エラー
今はChat-appというSlackに似たようなものを 実装しています。
本日のエラーコード method_missing': undefined method 'devise' for User (call 'User.connection' to establish a connection):Class (NoMethodError)
deviseでユーザー管理機能を作成の際におきました。
ログインフォームの作成には
1. gemの導入 Gemfileにdeviseを記載 (bundle installをターミナルで行いインストール作業を行った)
2.rails g devise:installを行う
3.モデルの作成 ここではrails g model 〇〇ではなくrails g devise 〇〇を行う (modelの方を使用するとdeviseで管理できなくなる。 ルーティングも自動的に設定してくれる)
4.テーブルの作成 (email,passwordは初期で設定されている。 マイグレーションファイルに必要事項を書き込み rails db:migrateを実行)
5.新規登録とログインのためのリンク設定 (rails routesをみながらパスを設定する。)
6.新規登録とログインのためのビューファイル作成 (rails g devise:viewsを使用)
7.ログインしている時とそうでない時の表示を異なるように設定 (今回はauthenticate_user!メソッドを使用(コントローラーに記述))
8.devise_parameter_sanitizerメソッドを使いストロングパラメーターの設定をコントローラにする (devise_parameter_sanitizerはdeviseでユーザー登録をする場合に使用でき、 「特定のカラムを許容する」メソッド。)
という感じで作っていくのですが
2番のrails g devise installを忘れていた為に 今回のエラー文が出た。
改善方法 ・マイグレーションのロールバック ・マイグレーションファイルの削除 ・モデルの削除 ・ルーティング の記述を消す
参考 qiita.com
でも、なぜかできなくてエラーが出るので 追加でマイグレーションのリセットをした。
そしてまた最初から実行すると成功した。