从设计中获取错误“用户不响应’设计’方法”运行“rails generate devise:install”时

我在运行“rails generate devise:install”时遇到设计错误“用户没有响应’设计’方法”。 想法如何解决?

实际上在尝试运行“rails generate devise:install”时也会出现此错误。

笔记:

Gregs-MacBook-Pro:testapp greg$ rails generate devise:install /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:406:in `raise_no_devise_method_error!': User does not respond to 'devise' method. This usually means you haven't loaded your ORM file or it's being loaded too late. To fix it, be sure to require 'devise/orm/YOUR_ORM' inside 'config/initializers/devise.rb' or before your application definition in 'config/application.rb' (RuntimeError) from /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:207:in `devise_for' from /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:203:in `each' from /Library/Ruby/Gems/1.8/gems/devise-2.0.1/lib/devise/rails/routes.rb:203:in `devise_for' from /Users/greg/source_rails/testapp/config/routes.rb:2 from /Library/Ruby/Gems/1.8/gems/actionpack-3.2.1/lib/action_dispatch/routing/route_set.rb:272:in `instance_exec' from /Library/Ruby/Gems/1.8/gems/actionpack-3.2.1/lib/action_dispatch/routing/route_set.rb:272:in `eval_block' from /Library/Ruby/Gems/1.8/gems/actionpack-3.2.1/lib/action_dispatch/routing/route_set.rb:249:in `draw' 

 Gregs-MacBook-Pro:testapp greg$ ruby -v **ruby 1.8.7** (2010-01-10 patchlevel 249) [universal-darwin11.0] Gregs-MacBook-Pro:testapp greg$ rails -v **Rails 3.2.1** Gregs-MacBook-Pro:testapp greg$ gem list *** LOCAL GEMS *** actionmailer (3.2.1) actionpack (3.2.1) activemodel (3.2.1) activerecord (3.2.1) activeresource (3.2.1) activesupport (3.2.1) addressable (2.2.6) arel (3.0.0) bcrypt-ruby (3.0.1) builder (3.0.0) bundler (1.0.22) coffee-rails (3.2.2) coffee-script (2.2.0) coffee-script-source (1.2.0) devise (2.0.1) erubis (2.7.0) execjs (1.3.0) faraday (0.7.6) hike (1.2.1) i18n (0.6.0) journey (1.0.1) jquery-rails (2.0.0) json (1.6.5) mail (2.4.1) mime-types (1.17.2) multi_json (1.0.4) multipart-post (1.1.4) mysql (2.8.1) mysql2 (0.3.11) oauth (0.4.5) oauth-plugin (0.4.0.rc2) oauth2 (0.5.2) orm_adapter (0.0.6) polyglot (0.3.3) rack (1.4.1) rack-cache (1.1) rack-ssl (1.3.2) rack-test (0.6.1) rails (3.2.1) railties (3.2.1) rake (0.9.2.2) rdoc (3.12) rubygems-update (1.8.15) sass (3.1.15, 3.1.14) sass-rails (3.2.4) sprockets (2.1.2) sqlite3 (1.3.5) thor (0.14.6) tilt (1.3.3) treetop (1.4.10) tzinfo (0.3.31) uglifier (1.2.3) warden (1.1.0) 

听起来你已经在用户模型中调用了设计方法。 也许你已经运行过rails g devise User

注释掉,并在路由文件中注释掉devise_for :users行,如果在那里。

完成rails的教程和这些答案对我来说不起作用,但经过一些搜索找到了解决方案。 希望这可以帮助其他任何新手并遇到此问题的人。

  1. 转到: config / routes.rb文件
  2. devise_for :installs (在前面放一个哈希标记)
  3. 转到您的Ruby终端并重新输入: rails generate devise:install

现在Devise应该正确安装,随后的错误应该消失。

资源

对于因以下错误而抵达此处的人:

用户不响应’设计’方法。 这通常意味着您尚未加载ORM文件或加载太晚。 要修复它,请确保在’config / initializers / devise.rb’中或在’config / application.rb’(RuntimeError)中的应用程序定义之前需要’devise / orm / YOUR_ORM’

但是你已经正确地初始化了你的ORM,它可能与gem有关。 我在旧的应用程序上遇到了同样的问题,这是由于与active_reload gem不兼容。 gem active_reload与Rails 3.2不兼容,应该删除。 active_reload已合并到Rails 3.2中,因此可以安全删除。

我从这里得到了解决方案: http : //anlek.com/2012/02/user-does-not-respond-to-devise-method/

我有同样的问题。 但对我来说,这是由与active_reload gem的冲突引起的。 一旦我删除,一切都很好。 我从https://github.com/plataformatec/devise/issues/1597获得了提示