undefined method `devise_for' in rails
Solution 1
Remember to restart your rails server after installing and configuring devise.
Solution 2
If you have the Devise gem specified in the Gemfile, just make sure you have the following in your routes.rb file:
devise_for :users
Also, here's a trick to make sure Devise is mapped properly, run: rails c, (the Rails app console) in your app's folder and then the following command line:
Devise.mappings.keys
You should see:
=> [:user]
Cheers!
Solution 3
Honestly, I would recommend following these two Railscasts (Episode 209 and Episode 210). The first is a simple and very easy walkthrough for installing Devise and the second is about customizing it to fit your application.
I've watched both episodes and they drastically helped me with Devise, particularly with the customization.
Your best bet is to start from scratch - you'll learn a heck of a lot and have Devise fully installed and functional.
Hope this helps! Good luck.
Yeddie
Updated on April 18, 2021Comments
-
Yeddie about 3 years
After I install devise and create a user model. I
rake db:migrate
and then Irake routes
. I then get a error with "undefined method `devise_for' for #". What could be causing this error? -
Rishi almost 10 yearsWhen in doubt, restart the server.
-
CanCeylan over 9 yearsHi Florin, thanks for your answer. I have "devise_for :users" line on my routes file, however when I run Devise.mappings.keys I got an error. How should I fix this?
-
Florin over 9 yearsHi there - care to specify the error, unless you already found the solution?!
-
Joe Essey over 5 yearsAlso comment out
devise_for :installs
inroutes.rb
-
ankush981 about 4 yearsI wish the Rails server could watch files and auto-reload. Wasteful, yes, but it'd be damn convenient during development!