2012-01-28 14 views
52

Właśnie zainstalowałem Devise w mojej aplikacji, skonfigurowałem widoki i wszystko. Jednak po kliknięciu przycisku rejestracji pojawia się ten błąd:Niezdefiniowana zmienna lokalna lub metoda "unconfirmed_email" podczas rejestrowania użytkowników?

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

Dlaczego tak jest? Używam też tlsmail do wysyłania wiadomości e-mail przez moje konto firmowe w Gmailu. To może być również problem.

+0

Zazwyczaj oznacza to brakującą kolumnę w bazie danych dla modeli takich jak Użytkownik. Być może trzeba zajrzeć do dokumentacji Devise, aby sprawdzić, czy należy przeprowadzić migrację, aby ją dodać. – tadman

Odpowiedz

114

unconfirmed_email jest wymagane dla reconfirmable. Z jakiegoś powodu ta została włączona domyślnie w config/intializers/devise.rb:

config.reconfirmable = true 

Wszystko co musisz zrobić, to ustawić to false.

+5

Lub skomentuj to. – Jazz

25

Tęsknisz za kolumną unconfirmed_email w db.

dodać t.reconfirmable w migracji i uruchomić rake db:migrate

lub jeśli używasz opracować> = 2,0

t.string :unconfirmed_email 
+0

Dzięki, ale tak naprawdę nie chciałem potwierdzić, z jakiegoś powodu został on domyślnie włączony. Zobacz moją odpowiedź. – varatis

+0

co to jest 't.reconfirmable'? czy masz na myśli 't.string: unconfirmed_email'? oops, trochę późno =) – trushkevich

+0

@trushkevich, nie! devise ma swoje własne metody pomocnicze (jak rekonfigurowalne), wystarczy zadzwonić do devise module name, i zrobi wszystkie migracje, aby działało. – Fivell

Powiązane problemy