Je suis un peu en retard pour cette partie, mais ayant tout juste été de me gratter la tête sur le même problème pour la dernière heure, j'ai pensé que je pourrais partager avec vous la solution la plus simple que j'ai trouvé: vous pouvez simplement retirer l' password_confirmation
champ dans le formulaire d'inscription, ce qui désactive la nécessité de confirmer le mot de passe entièrement!
La raison à cela réside dans lib/devise/models/validatable.rb
dans le dispositif source:
module Devise
module Models
module Validatable
def self.included(base)
base.class_eval do
#....SNIP...
validates_confirmation_of :password, :if => :password_required?
end
end
#...SNIP...
def password_required?
!persisted? || !password.nil? || !password_confirmation.nil?
end
end
end
end
Notez que la validation est déclenché uniquement si password_required?
retours true
, et password_required?
sera de retour false
si l' password_confirmation
champ est - nil
.
Parce que là où l' password_confirmation
champ est présent dans le formulaire, il sera toujours inclus dans les paramètres de hachage , comme une chaîne vide s'il est laissé vide, la validation est déclenchée. Toutefois, si vous supprimez l'entrée de la forme, l' password_confirmation
dans les params sera nil
, et, par conséquent, la validation ne sera pas déclenchée.
Espérons que cela est utile!
Merci,
Tim