76

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?

Mestica
  • 1,489
  • 4
  • 23
  • 33
Yeddie
  • 863
  • 2
  • 7
  • 7

4 Answers4

280

Remember to restart your rails server after installing and configuring devise.

Serge Paquet
  • 2,809
  • 1
  • 13
  • 2
8

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!

Florin
  • 528
  • 5
  • 14
  • 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? – CanCeylan Jan 03 '15 at 14:50
  • Hi there - care to specify the error, unless you already found the solution?! – Florin Jan 04 '15 at 16:21
2

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.

vich
  • 11,836
  • 13
  • 49
  • 66
0

You may need to do a bundle install

Rishav Rastogi
  • 15,484
  • 3
  • 42
  • 47