2012-01-28 11 views
52

Ho appena installato Devise nella mia app, configurato le viste e tutto. Tuttavia, quando faccio clic sul pulsante di iscrizione ottengo questo errore:Variabile locale indefinita o metodo `unconfirmed_email 'quando si registrano gli utenti?

NameError in Devise::RegistrationsController#create 
undefined local variable or method `unconfirmed_email' for #<User:0x00000103721b28> 

Perché è questo? Inoltre, sto usando tlsmail per inviare e-mail attraverso il mio account aziendale Gmail. Questo potrebbe essere un problema.

+0

Questo di solito indica una colonna mancante nel database per modelli come Utente. Potrebbe essere necessario fare riferimento alla documentazione di Devise per vedere se è necessario eseguire una migrazione per aggiungerla. – tadman

risposta

114

unconfirmed_email è richiesto per reconfirmable. Per qualche ragione questo è stato abilitato di default in config/intializers/devise.rb:

config.reconfirmable = true 

Tutto quello che dovete fare è impostare questo su false.

+5

Oppure commentalo. – Jazz

25

Si manca colonna non confermata_email in db.

aggiungere t.reconfirmable nelle migrazioni ed eseguire rake db:migrate

o se si sta utilizzando ideare> = 2,0

t.string :unconfirmed_email 
+0

Grazie, ma in realtà non volevo riconfermabile, per qualche motivo era abilitato di default. Vedi la mia risposta. – varatis

+0

cos'è 't.reconfirmable'? potresti voler dire 't.string: unconfirmed_email'? oops, un po 'in ritardo =) – trushkevich

+0

@trushkevich, no! Devise ha i propri metodi di supporto (come riconfermabile), basta chiamare il nome del modulo di sviluppo e farà tutte le migrazioni per farlo funzionare. – Fivell

Problemi correlati