2012-02-06 12 views
15

Nie chcę, aby e-mail do logowania się przy użyciu urządzenia. Usunąłem email z config/inicjalizatorów/devise.rb:wymyślić: nie wymagające poczty elektronicznej

config.authentication_keys = [ :login ] 

i dodaje to do mojego modelu użytkownika:

def email_required? 
    false 
end 

Jestem jednak otrzymuję ten błąd, gdy próbuję zapisać użytkownika:

SQLite3::SQLException: users.email may not be NULL 

Czy mam coś zmienić w migracji?

Odpowiedz

9

dodatkowy do usuwania „niezbędne” z: kolumny email należy usunąć " : validatable "from model użytkownika.

26

Niektóre odniesienia mówią, że nie należy usuwać :validatable, ponieważ spowoduje to usunięcie poprawności hasła.

W moim przypadku usunąłem kolumnę email z mojego użytkowników w bazie danych, a programowanie rozpoczęło awarię. I obejmował:

def email_required? 
    false 
end 

def email_changed? 
    false 
end 

w User.rb, i to działało poprawnie.

+4

http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Validatable –

+0

Tak, to jest bardzo ważne –

Powiązane problemy