2014-10-25 11 views
6

kawałek kodu na github: http://bit.ly/ZMSJXQSzyny 4, Devise - Komunikaty o błędach podczas logowania nie działa properply

1) przy logowaniu, mam żadne komunikaty o błędach jeżeli:

  • e-mail nie robi „t istnieje w db
  • hasło jest pusty
  • hasło jest nieprawidłowe

devise_error_messages! jest pusty jako resource.errors jest pusty. Wygląda na to, że zasób nie zostanie sprawdzony. Czemu?


2) Jeśli biegnę resource.valid? następnie resource.errors powraca :email=>["has already been taken"], :password=>["can't be blank"]

otrzymuję komunikaty o błędach, ale nie są one poprawne. "E-mail został już zrobiony" nie ma sensu w czasie logowania. Dlaczego?

(Zarejestruj się, Reset hasło itd działają bez zarzutu.)

+0

Czy próbowałeś z pomocnikiem devise_error_messages! ? –

+0

Tak, zwraca pusty ciąg znaków. – Webspirit

+0

@Helen, jak skonfigurowałeś urządzenie? Czy możesz opublikować kod modelu? – Mandeep

Odpowiedz

10

devise_error_messages! jest tylko pomocnikiem, aby powrócić sformatowaną listę resource.errors. Niektóre komunikaty o błędach są jednak ustawione w obiekcie flasha szyny. Gdzieś w twoim layoucie powinieneś renderować te wiadomości flash:

<%- flash.each do |name, msg| -%> 
    <%= content_tag :div, msg, id: "flash_#{name}" %> 
<%- end -%>