Tworząc prosty system logowania natknąłem się na coś takiego
Mam możliwość zmiany hasła użytkownika, hasło jest trzymane w bazie danych jako sha1 tworzona z (password + salt) (sól generowana przy tworzeniu użytkownika oraz przy zmianie hasła). Czy można w jakiś sposób dodać walidację długości hasła? validates_length_of :password nie działa, bo długość jest zawsze 40 jako że to hash sha1.
Pozdrawiam,
msq
P.S. Szkoda trochę widzieć, że na głównej stronie nic się nie dzieje.
Czy w w logowaniu użytkownika powinno się używać flash[:notice] w przypadku błędnych danych, czy tworzyć validations?
np. coś w stylu
unless @user.password == params[:password] @user.errors.add(“Ha!”)
end
Zdaje się że bardziej “rails-way” jest to drugie rozwiązanie, ale pytam bardziej doświadczonych
P.S.
I jeszcze jedno pytanko: jak walidować pola, które nie są w modelu a tylko w formularzu (na przykład chcę dodać użytkownika, tylko gdy wpisze ten sam mail do pól “password” i “password_confirm” ale “password_confirm” nie ma w modelu)
OK, odpowiadam sam sobie, być może ktoś skorzysta.
Żeby walidować pola, wystarczy dodać w modelu
attr_accessor :nazwa_pola
wtedy tworzymy w modelu takie pole i możemy na nim wykonywać co nam się podoba