Mam niestandardowy kontroler, który obsługuje edycję haseł użytkowników na podstawie kodu here.Devise Niepotwierdzenie hasła/potwierdzenie hasła
Użytkownik modelu
attr_accessible :password, :password_confirmation, :username, :login
...
devise :database_authenticatable,
:lockable,
:registerable,
:recoverable,
:rememberable,
:trackable
PasswordsController
expose(:user) { current_user }
def update
if user.update_with_password(params[:user])
sign_in(user, :bypass => true)
flash[:notice] = "success"
else
render :edit
end
end
Moja edycja forma hasło znajduje się here.
Problem polega na tym, że bez względu na to, co wprowadzę (lub nie wprowadzę w tym celu) do formularza edycji hasła, zostanie wyświetlona metoda "sukces" flashowania.
Czy to wszystko działa, jak powinno? jeśli pole potwierdzenia się nie zgadza lub hasło jest nieprawidłowe, to nie zmienia hasła? – Dex
Nadal zmienia to, co jest w: hasło bez względu na to, co (jeśli coś) znajduje się w: password_confirmation. –
co się stanie, jeśli zmienisz instrukcję if na 'jeśli params [: user] [: password] == params [: user] [: password_confirmation]' i wstawisz 'user.update_with_password (parametry [: user])' w treści ? –