Lors de l'utilisation de l'appareil pour implémenter une nouvelle fonction d'enregistrement d'utilisateur J'ai donné la validation, mais la validation n'a pas été appliquée et j'ai eu du mal à la mettre en œuvre, je vais donc la laisser sous forme de mémorandum.
concevoir est un bijou qui facilite la mise en œuvre de la fonction d'authentification, mais il était difficile pour moi en tant que débutant de comprendre ce que je faisais invisible parce que le bijou fonctionnait tout seul. C'est la raison pour laquelle il n'a pas été appliqué même s'il a été validé.
= form_for(@user, url: user_registration_path) do |f|
= f.password_field: mot de passe, classe: "main__box__bottom__content__group2__form", espace réservé: "7 caractères alphanumériques demi-largeur ou plus",
La conclusion était que le formulaire utilisait password_field, donc Rails semble reconnaître ce formulaire de saisie comme un mot de passe et effectuer automatiquement une simple validation.
Correction de password_fileld à text_field.
= form_for(@user, url: user_user_registration_path) do |f|
= f.text_field :password
end
Cela le reconnaît comme une colonne de mot de passe.
Cependant, si vous validez l'ajout de la colonne mot de passe du modèle, celle-ci sera double validée, donc Ajout de la validation de l'appareil: supprimez validable
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
# ↑ Supprimer.
end
Désormais, la validation de votre appareil n'est plus requise et le mot de passe reçoit désormais votre propre validation personnalisée.
・ La validation a la priorité de se référer à Validation donnée au champ texte> concevoir> Validation auto-réalisée Il est devenu. -Si vous souhaitez appliquer uniquement la validation personnalisée, utilisez text_field et supprimez: validable de devise.
https://qiita.com/kouheiszk/items/215afa01eeaadbd99340
Recommended Posts