Paramètres de validation pour la fonction de connexion Ruby on Rails

Définir la validation dans les colonnes de nom et d'e-mail du modèle utilisateur

Je me réfère au guide Rails et ainsi de suite. https://railsguides.jp/active_record_validations.html

【Ce que tu veux faire】 ・ Laissez votre nom et votre adresse e-mail vides pour ne pas pouvoir vous inscrire ・ Limite de caractères pour le nom et l'adresse e-mail

Le point est ① "présence: vrai" → Interdire l'enregistrement dans le vide ② "length: {maximum:}" → Interdire une longueur supérieure au nombre défini après ":"

Vous travaillerez sur le fichier app / models / user.rb. J'ai créé le code suivant.

class User < ApplicationRecord
  validates :name,  presence: true, length: { maximum: 20 }
  validates :email, presence: true, length: { maximum: 300 },
end

Vérifiez la console Rails pour voir si cela fonctionne. Tout d'abord, lorsque j'essaye de m'inscrire dans le vide. .. ..

> User.create(name: "", email: "")
   (0.3ms)  BEGIN
   (0.4ms)  ROLLBACK
 => #<User id: nil, name: "", email: "", created_at: nil, updated_at: nil>

Il n'est pas enregistré par ROLLBACK.

Et si vous essayez d'enregistrer un nom long ou une adresse e-mail, vous pouvez voir que c'est aussi ROLLBACK (la partie marquée avec ... dans la colonne e-mail est trop longue pour être affichée dans l'article).

> user = User.create(name: "a"*25 , email: "b"*350 + "@test.com")
>  (0.3ms)  BEGIN
>  (0.4ms)  ROLLBACK
=> #<User:
     id: nil,
     name: "aaaaaaaaaaaaaaaaaaaaaaaaa",
     email:"[email protected]",
     created_at: nil,
     updated_at: nil>

Lors de l'affichage de la raison de l'erreur. .. ..

> user.errors.messages
> {:name=>["is too long (maximum is 20 characters)"],
 :email=>["is too long (maximum is 300 characters)"]}

J'ai pu confirmer que "length: {maximum:}" fonctionne correctement.

À propos, la partie qui est maximale semble s'appliquer de diverses manières. (À partir du guide Rails ci-dessous)

class Person < ApplicationRecord
  validates :name, length: { minimum: 2 }
  validates :bio, length: { maximum: 500 }
  validates :password, length: { in: 6..20 }
  validates :registration_number, length: { is: 6 }
end

:minimum:L'attribut ne peut pas prendre une valeur inférieure à cette valeur.
:maximum:L'attribut ne peut pas prendre une valeur supérieure à cette valeur.
:dans ou:within:La longueur de l'attribut doit être comprise dans l'intervalle donné. La valeur de cette option doit être une plage.
:is:La longueur de l'attribut doit être égale à la valeur donnée.

Recommended Posts

Paramètres de validation pour la fonction de connexion Ruby on Rails
Implémentation de la fonction de connexion Ruby on Rails (Session)
Résumé de la validation Ruby on Rails
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
Explication de Ruby sur rails pour les débutants ⑥ ~ Création de validation ~
[Ruby on Rails] Introduction de la fonction de pagination
[Ruby on Rails] Fonction de sortie CSV
[Ruby on Rails] Implémentation de la fonction de commentaire
[Ruby on Rails] DM, fonction de chat
[Ruby on Rails] Implémenter la fonction de connexion par add_token_to_users avec l'API
[Ruby on Rails] Fonction de recherche (non sélectionnée)
[Rails] Ajout de la fonction de commentaire Ruby On Rails
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
Explication de Ruby sur rails pour les débutants ①
[Ruby on rails] Implémentation d'une fonction similaire
[Ruby on Rails] Suppression logique (fonction de retrait)
[Ruby on Rails] Mémo d'introduction Select2 pour Webpacker
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Ruby on Rails Implémentation de la fonction d'envoi automatique de courrier
[Rails] Procédure de liaison de bases de données avec Ruby On Rails
Association Ruby On Rails
[Ruby on Rails] Fonction de post-édition (mise à jour, suppression)
[Ruby on Rails] Communication asynchrone de la fonction de publication, ajax
[Ruby on Rails] Fonction de classement des scores (affichage complet)
[Ruby on Rails] Fonction de prévisualisation de l'image dans le fichier
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
[Ruby on Rails] Fonction de recherche (modèle, formule de sélection de méthode)
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
Record d'apprentissage de Ruby on rails -2020.10.06
Mémorandum de base Ruby on Rails
[Ruby on Rails] Comment implémenter la fonction de balisage / recherche incrémentielle pour les articles (sans gemme)
[Rails] Paramètres de chargement des polices Web dans CloudFront avec Heroku
Ruby on Rails Paramètre de la fonction d'envoi automatique des e-mails (avec Gmail)
[Ruby on Rails] Fonction de signet (enregistrement favori, comme): une direction
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
Une note sur la fonction de départ de Ruby on Rails
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~