undefined method `devise_for' in rails

30,116

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.

Share:
30,116
Yeddie
Author by

Yeddie

Updated on April 18, 2021

Comments

  • Yeddie
    Yeddie about 3 years

    After I install devise and create a user model. I rake db:migrate and then I rake routes. I then get a error with "undefined method `devise_for' for #". What could be causing this error?

  • Rishi
    Rishi almost 10 years
    When in doubt, restart the server.
  • CanCeylan
    CanCeylan over 9 years
    Hi 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
    Florin over 9 years
    Hi there - care to specify the error, unless you already found the solution?!
  • Joe Essey
    Joe Essey over 5 years
    Also comment out devise_for :installs in routes.rb
  • ankush981
    ankush981 about 4 years
    I wish the Rails server could watch files and auto-reload. Wasteful, yes, but it'd be damn convenient during development!