5

Ustanowiłem uwierzytelnianie w aplikacji szyny przy użyciu narzędzia devise, po this tutorial. To działa świetnie, użytkownik może się zarejestrować, a następnie zalogować za pomocą adresu e-mail i hasła.wymyślić/omniauth zaloguj się z Twittera - sprawdzanie poprawności nie powiodło się: wiadomość e-mail nie może być pusta

Chcę teraz dodać możliwość rejestracji/logowania za pomocą Twittera. Podążam za przewodnikiem od devise wiki Przykład na wiki używa facebooka, zmieniłem go, aby używać Twittera. Udaje mu się przejść do Twittera i poprosić o autoryzację, więc jestem pewien, że mam podstawy. Jednak po powrocie do mojej aplikacji pojawia się następujący błąd.

Validation failed: Email can't be blank 

Zakładam, że nie mogę podać adresu e-mail.

Kod, którego używam jest identyczny (oprócz zamiany Facebooka na twitter) z tym z tutoriali, więc nie zamieszczam żadnych próbek. Daj mi znać, jeśli chcesz coś zobaczyć.

Jestem całkiem nowy dla szyn, więc nie jestem pewien jak debugować. Jakieś rady dotyczące tego, jak powinienem kontynuować?

+3

Zakładam, że to dlatego, że sprawdzanie poprawności wymaga wiadomości e-mail, ale Twitter nie dostarcza wiadomości e-mail. Musisz albo nie wymagać e-maila, albo poprosić użytkowników o ręczne wprowadzenie adresu e-mail. – abraham

Odpowiedz

3

Hej po prostu usuń ": validatable" z modelu użytkownika n pozwoli na pusty email.worked dla mnie!

+0

dzięki, wypróbuję to przez weekend – Finnnn

2

Wiem, że to pytanie jest stare, ale wciąż pojawia się i szybkie wyszukiwanie google odkryło kilka bardzo złych rad. Więc ...

Prawidłowy sposób, aby e-maile opcja nie jest usunięcie validatable interfejs użytkownika od modelu, wystarczy dodać do niej zamiast:

def email_required? 
    false 
end 

Ten przesłania metodę w ' poprawna "klasa, sygnalizacja kodu, że e-mail jest polem opcjonalnym, ale zachowuje wszystkie dobre rzeczy, które można zweryfikować, takie jak, wiesz ... upewniając się, że masz prawdziwe hasło i przydatne rzeczy. Rzeczy, które chcesz zachować.

Oczywiście, jeśli potrzebujesz czegoś naprawdę zwariowanego, powinieneś rzucić okiem na kod źródłowy interfejsu, który można zweryfikować, i skopiować w odpowiednich poprawkach i dostosować w razie potrzeby, ale dla 99,99% ludzi, kod I ' Przedstawione powyżej jest prawdopodobnie wystarczające.

Nadzieja, która pomaga znużonemu użytkownikowi google.