Je suis en train de créer un formulaire pour permettre aux utilisateurs de changer leur mot de passe:changer le mot de passe avec authlogic - validation ne pas attraper entrées vides
Vue:
- form_tag change_password_users_path do
= error_messages_for :user, :header_message => "Please Try Again", :message => "We had some problems updating your account"
%br
= label_tag :password, "New password:"
= password_field_tag "password"
%br
= label_tag :password_confirmation, "NConfirm new password:"
= password_field_tag "password_confirmation"
%br
= submit_tag "Update Account"
Controller:
def change_password
@user = current_user
if request.post?
@user.password = params[:password]
@user.password_confirmation = params[:password_confirmation]
if @user.save
redirect_to user_path(current_user)
else
render :action => "change_password"
end
end
end
Authlogic détecte des erreurs de validation lorsque le mot de passe est "trop court" ou le mot de passe ord ne correspond pas à la confirmation, mais ne fait rien lorsque le formulaire est soumis avec les deux champs vides. @ user.save doit renvoyer la valeur true, car je suis redirigé vers 'user_path (current_user)'.
Le mot de passe n'est pas réellement modifié dans la base de données.
Merci pour votre aide.
Juste une pensée, pouvez-vous ouvrir le débogueur sous 'if @ user.save' et essayer de sauvegarder l'enregistrement manuellement, puis utiliser @ user.changes? – btelles
La commande serait "ruby script/server --debugger" – btelles
Publier le modèle? –