2012-02-12 9 views
6

Ricevo l'errore di escogitare "L'utente non risponde al metodo 'devise'" durante l'esecuzione "rails generate elaborare: l'installazione". Idee su come risolvere?ottenere l'errore di escogitare "L'utente non risponde al metodo 'escogativa'" durante l'esecuzione "rails generate devise: installa"

In realtà anche questo errore quando si cerca di eseguire "rails generate devise: install" ho appena notato.

Note:

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' 

e

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) 

risposta

46

Sembra che hai già il metodo di concepire chiamato nel vostro modello User. Forse hai già eseguito rails g devise User?

Commentalo e commenta la riga devise_for :users nel tuo file di percorsi, se è lì dentro.

+0

tks - che sembrava per risolvere il problema - quello che era il problema? - Ho emesso i comandi nell'ordine sbagliato e in qualche modo le cose sono state riempite? Dovrò decommentare di nuovo le righe ora presumo? (i comandi che intendevo sopra erano: "rails generate devise: install", "rails genera utente devise" e "rake db: migrate". – Greg

+5

@greg - eseguendo 'rails g devise: install' mette un inizializzatore per escogitare nel file 'config/initializers/devise.rb'. Ecco cosa carica tutti i metodi di escalation in modo che l'applicazione possa usarli.Se si esegue' rails g devise User' prima che l'inizializzatore sia a posto, allora il modello User contiene chiamate a metodi che l'applicazione non lo sa, quindi ogni volta che esegui qualsiasi comando rota fallirà a causa di ... beh, l'errore che stavi ricevendo.Sarebbe anche fallito se si fosse tentato di eseguire 'rails server' o' rails c', o qualsiasi altra cosa. – declan

+0

grazie mille per questo – cancelledout

1

Per le persone che sono arrivati ​​qui a causa del seguente errore:

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)

ma avete già il vostro ORM inizializzato correttamente, può essere correlato gioiello. Stavo ricevendo lo stesso problema su una vecchia app ed era a causa di un'incompatibilità con la gemma active_reload. gem active_reload non è compatibile con Rails 3.2 e deve essere rimosso. active_reload è stato incorporato in Rails 3.2, quindi è sicuro da rimuovere.

ho avuto la soluzione da qui: http://anlek.com/2012/02/user-does-not-respond-to-devise-method/

3

Il completamento di un tutorial per rotaie & queste risposte non ha funzionato per me, ma dopo qualche ricerca hanno trovato una soluzione. Spero che questo aiuti chiunque altro è nuovo e in esecuzione in questo problema.

  1. Vai a: config/ file di routes.rb
  2. commento la riga devise_for :installs (mettere un hash tag di fronte)
  3. Vai al tuo terminale Ruby e reinserire: rails generate devise:install

Ora Devise dovrebbe installare correttamente gli errori successivi a &.

Source

+0

Si prega di fare il backup di tutte le configurazioni prima di fare questo ... – simonmorley

Problemi correlati