簡體   English   中英

當運行“ rails generate devise:install”時,從devise中得到錯誤“用戶不響應'devise'方法”

[英]getting error from devise “User does not respond to 'devise' method” when running “rails generate devise:install”

當運行“ rails generate devise:install”時,我從devise中收到錯誤消息“用戶未響應'devise'方法”。 想法重新如何解決?

實際上,當我嘗試運行“ 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)

聽起來您已經在User模型中調用了devise方法。 也許您已經運行過rails g devise User

注釋掉它,然后注釋掉route文件中的devise_for :users行(如果在其中)。

完成關於Rails和這些答案的教程對我不起作用,但是經過一番搜索后找到了解決方案。 希望這對其他新手和遇到此問題的人有所幫助。

  1. 轉到: config / routes.rb文件
  2. devise_for :installs (在前面放一個devise_for :installs
  3. 轉到Ruby終端,然后重新輸入: rails generate devise:install

現在,Devise應該可以正確安裝並且以后的錯誤也應該消失了。

資源

對於由於以下錯誤而到達這里的人:

用戶不響應“設計”方法。 這通常意味着您尚未加載ORM文件,或者加載時間太晚。 要解決此問題,請確保在“ config / initializers / devise.rb”內部或在“ config / application.rb”中的應用程序定義之前要求“ devise / orm / YOUR_ORM”(RuntimeError)

但是您已經正確初始化了ORM,這可能與gem有關。 我在舊的應用程序上遇到了同樣的問題,這是由於與active_reload gem不兼容active_reload 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獲得了提示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM