rails中未定义的方法`devise_for'

Posted

技术标签:

【中文标题】rails中未定义的方法`devise_for\'【英文标题】:undefined method `devise_for' in railsrails中未定义的方法`devise_for' 【发布时间】:2011-06-16 04:56:47 【问题描述】:

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

【问题讨论】:

您是否已将设计添加到您的 Gemfile 中?你能检查一下你的 Gemfile.lock 中是否也有devise 吗? 我的 gem 文件说 gem 'devise', :git => 'git://github.com/plataformatec/devise.git' 【参考方案1】:

你可能需要bundle install

【讨论】:

【参考方案2】:

请记住在安装和配置设备后重新启动您的 Rails 服务器。

【讨论】:

如有疑问,请重启服务器。 routes.rb中也注释掉devise_for :installs 我希望 Rails 服务器可以监视文件并自动重新加载。浪费,是的,但在开发过程中会很方便!【参考方案3】:

老实说,我建议您关注这两个 Railscast(Episode 209 和 Episode 210)。第一个是安装 Devise 的简单且非常容易的演练,第二个是关于自定义它以适合您的应用程序。

这两集我都看过,它们对我的设计帮助很大,尤其是在自定义方面。

最好的选择是从头开始 - 你会学到很多东西,并且完全安装好 Devise 并正常运行。

希望这会有所帮助!祝你好运。

【讨论】:

【参考方案4】:

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

 devise_for :users

此外,还有一个技巧可以确保正确映射 Devise,在应用的文件夹中运行:rails c,(Rails 应用控制台),然后运行以下命令行:

 Devise.mappings.keys

你应该看到:

=> [:user] 

干杯!

【讨论】:

您好弗洛林,感谢您的回答。我的路由文件中有“devise_for:users”行,但是当我运行 Devise.mappings.keys 时出现错误。我应该如何解决这个问题? 您好 - 请注意指定错误,除非您已经找到解决方案?!

以上是关于rails中未定义的方法`devise_for'的主要内容,如果未能解决你的问题,请参考以下文章

Rails RSpec中未定义的方法“create”

Rails 3.2:activemerchant 中未定义的方法“class_inheritable_accessor”

Rails 5 API 控制器中未定义的实例方法“respond_to”

同一 rails 资源的多个 devise_for 路线

Rails 5,Rspec:架构中未找到环境数据

如何修复“运行配置错误:[SDK 中未找到 Rails]”?