[RUBY] Utilisez with_options pour regrouper les mêmes validations!

introduction

Je vais résumer la validation utilisée dans la création actuelle de l'application.

Résumer la validation commune

with_options

Prenant comme exemple la validation fréquemment utilisée

model


validates :user, presence: true
validates :item, presence: true
validates :price, presence: true
validates :email, presence: true

C'est juste la même chose, ça devient plus long et plus lisible ... Dans un tel cas, vous pouvez définir la validation collectivement avec with_options.

model


with_options presence: true do
  validates :user
  validates :item
  validates :price
  validates :email
end

Utilisation de with_options plus avancée

Ajouter plus de validations individuelles

model


with_options presence: true do
  validates :user, length: { minimum: 6 }
  validates :item
  validates :price, format: { with: /\A[0-9]+\z/ }
  validates :email
end

La validation peut être ajoutée individuellement dans do ~ end. À propos, l'option de longueur peut limiter le nombre de caractères. L'option de format est une spécification pour les expressions régulières.

Résumer davantage

model


with_options presence: true do
  validates :user
  validates :item
  with_options uniqueness: true do
    validates :price
    validates :email
  end
end

Vous pouvez imbriquer with_options dans with_options. Dans l'exemple ci-dessus, présence: true est défini sur: utilisateur ,: article ,: prix ,: email De plus, ʻuniqueness: true` est défini sur: price ,: email. À propos, l'option d'unicité vous empêche d'enregistrer la même valeur. (Unicité)

finalement

Écrire avec with_options est similaire au sentiment de se résumer en termes communs par apprentissage de factorisation qui est sorti en mathématiques du premier cycle du secondaire.

Recommended Posts

Utilisez with_options pour regrouper les mêmes validations!
Comment utiliser la méthode link_to
Comment utiliser la méthode include?
Comment utiliser la méthode form_with
Comment utiliser la classe wrapper
Comment utiliser MinIO avec la même fonction que S3 Utiliser docker-compose
Comment utiliser OrientJS et OrientDB ensemble
[Java] Comment utiliser la classe File
[Rails] Comment utiliser la méthode de la carte
[Java] Comment utiliser la méthode toString ()
Etudier comment utiliser le constructeur (java)
[Traitement × Java] Comment utiliser la boucle
[Traitement × Java] Comment utiliser la classe
[Traitement × Java] Comment utiliser la fonction
[Java] Comment utiliser la classe Calendar
Comment utiliser @Builder et @NoArgsConstructor ensemble
Comment utiliser le module caméra OV7725 (ESP32-WROVER-B)
Lorsque vous souhaitez utiliser la méthode à l'extérieur
Sortie de la façon d'utiliser la méthode slice
Comment utiliser la méthode replace () (Java Silver)
[Introduction à Ruby] Comment utiliser la méthode slice
Utilisez SCNIK Constraint pour animer librement le bras du robot
[Rails] Je ne sais pas comment utiliser le modèle ...
[Débutant] Découvrez le problème N + 1! Comment utiliser Bullet
Java: utilisez Stream pour trier le contenu d'une collection
[Rails] Assemblez le même code avec les actions du contrôleur
Comment utiliser la même classe Mapper dans plusieurs sources de données avec Spring Boot + MyBatis