Je crée un système d'utilisateur pour Rails, et connectez-vous, inscrivez-vous, etc ... tout fonctionne Awesome! Au moins, c'est ce que je pensais. . essayé de mettre à jour l'attribut profile
d'un utilisateur, mais je ne pas envoyer un nouveau mot de passe ou nom d'utilisateur avec elle, je l'utilise dans mon modèle User
:Mise à jour d'un utilisateur crée un nouveau hachage d'un mot de passe vide :(
protected
def after_validation
self.password = Password::update(self.password)
end
les sels de méthode Password::update
et HASHES le mot de passe pour la sécurité. Le problème est que, chaque fois que je ne spécifie pas de password
lorsque j'économise, Rails essaie de sauvegarder un mot de passe vide. Cependant, mon modèle valide les mots de passe vides, mais un (n) mot de passe vide (hash salé d'un mot de passe vide) est sauvegardé. Mais il ne devrait enregistrer le champ :profile
que s'il est le seul donné (et le champ :updated_at
). Donc, je veux dire en fait que lorsque je mets à jour l'enregistrement sans spécifier le mot de passe actuel, l'attribut mot de passe est toujours enregistré comme un hachage d'une chaîne vide. Je veux que update_attributes
devrait ignorer le mot de passe s'il n'est pas défini.
Quelqu'un peut-il aider? Merci
Désolé. Je veux dire en fait que lorsque je mets à jour l'enregistrement sans spécifier le mot de passe actuel, l'attribut password est toujours enregistré comme un hachage d'une chaîne vide. Je veux dire que 'update_attributes' devrait ignorer' password' s'il n'est pas défini. –