0
0

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 1 year has passed since last update.

userモデルを作る時にエラー「undefined method `devise'」の解決法

Last updated at Posted at 2022-01-07

#はじめに
 deviseを介してuserモデルを作る時に、「undefined method `devise'」というエラーが出て作成ができませんでした。ちょっとした記述ミスだったのですが、焦ったので備忘録としてまとめておきます。

#原因
 deviseは導入したはずだったのですが、遡ってみると

% bundle install
% rails d devise install
% rails g devise user

よくみてみると、「rails d devise install」という記述に「:」がない事に気がつきました。本来は「rails d devise:install」です。したがって今回の原因は「:」が抜けている事でした。。

しかし、問題は中途半端に処理は実行されていて、deviseのマイグレーションファイルは出来上がってしまっている事です。bundle install直後に戻さないといけません。

#対処法
 対処法としては以下の3つの手順を行いました。
①routes.rbに作られた、 「devise_for :installs」 という記述を削除する。
これを削除しないと次の手順のrailsコマンドが使えません。
(※ 「:installs」という記述は謎だが、中途半端なdeviseを介してuserモデルを作ると出現した・・)

②rails db rollbackコマンドを実行。→devise作成時のマイグレーションファイルを削除する。

③rails destroy devise:installコマンドを実行。→devise関連のconfigファイルの削除

ここまでやってもう一度、「:」をしっかりと入れて、「rails g devise:install」で無事にdeviseの再導入できました。よかった。

#まとめ
 結局は「:」のうち忘れという事で単純な事でしたが、焦りました。model関連の導入は落ち着いてやろうと思います。
以上この記事が少しでも誰かのお役に立てれば幸いです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?