Rails中未定义的方法“ devise_for”


70

安装完之后,设计并创建用户模型。我rake db:migrate然后我rake routes。然后,我收到了“未定义的方法'devise_for'为#”的错误。是什么导致此错误?


1
您是否已将devise添加到您的Gemfile?您可以检查deviseGemfile.lock中是否也存在吗?
Dogbert,2011年

我的宝石文件说,创业板色器件“,:混帐=> '混帐://github.com/plataformatec/devise.git'
Yeddie

Answers:


259

在安装和配置devise之后,请记住重新启动Rails服务器。


2
如有疑问,请重新启动服务器。
Rishi 2014年

此外注释掉devise_for :installsroutes.rb
乔Essey

我希望Rails服务器可以监视文件并自动重新加载。是的,这很浪费,但是在开发过程中会非常方便!
ankush981 '20

8

如果您在Gemfile中指定了Devise gem,只需确保您的route.rb文件中具有以下内容:

 devise_for :users

另外,这是确保正确映射Devise的一个技巧,运行:在应用程序的文件夹中运行rails c(Rails应用程序控制台),然后输入以下命令行:

 Devise.mappings.keys

您应该看到:

=> [:user] 

干杯!


嗨弗洛林,谢谢您的回答。我的路由文件上有“ devise_for:users”行,但是运行Devise.mappings.keys时出现错误。我该如何解决?
CanCeylan 2015年

嗨,您好-请指定错误,除非您已经找到解决方案?
Florin

2

老实说,我建议遵循以下两个Railscasts(第209第210集))。第一个是安装Devise的简单且非常容易的演练,第二个是关于对其进行自定义以适合您的应用程序。

我看了这两集,他们为Devise带来了极大的帮助,特别是在定制方面。

最好的选择是从头开始-您将学到很多东西,并已完全安装和运行了Devise。

希望这可以帮助!祝好运。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.