[RAILS] Comment spécifier la validation pour time_field

Contexte

Lors de la mise en œuvre d'un formulaire avec des rails, j'ai essayé d'enregistrer les heures d'ouverture en utilisant `` time_field '', mais la validation n'a pas fonctionné et j'ai eu du mal, je vais donc le garder comme un enregistrement.

Solutions

Afin de garder l'ordre auquel j'étais accro, je vais le décrire en trois étapes.

  1. Générez une boîte de sélection d'heure sans options
    <div class="time-field">
      <%= f.time_select :open_time %> 〜
      <%= f.time_select :close_time %>
    </div>

204b83a9e02c5af89386534b8d0aeac4.png Étant donné que l'heure actuelle est affichée telle quelle, la validation passera même si vous oubliez le réglage.

  1. Ajoutez `` `prompt: true``` comme option
    <div class="time-field">
      <%= f.time_select :open_time, prompt: true %> 〜
      <%= f.time_select :close_time, prompt: true %>
    </div>

be7a44a3360206f251ae9e27117a9c94 (1).png Si vous n'avez pas sélectionné d'heure avec cela, il devrait être joué par validation et une erreur devrait s'afficher! J'ai pensé, mais aucune erreur ne s'affiche.

  1. Ajoutez ignore_date: true
    La raison pour laquelle la validation ne joue pas même si l'heure ne doit pas être spécifiée est que les informations de date sont également envoyées. La vérification des paramètres lors de l'exécution de l'action de création est la suivante

console


"open_time(1i)"=>"1", "open_time(2i)"=>"1", "open_time(3i)"=>"1", "open_time(4i)"=>"", "open_time(5i)"=>""

La première moitié `" open_time (1i) "=>" 1 "," open_time (2i) "=>" 1 "," open_time (3i) "=>" 1 "` est l'année, le mois, le jour Si vous n'entrez pas les données, la valeur "1" sera saisie et envoyée, afin que la validation puisse être réussie.
Ajoutez l'option ignore_date pour éviter cette situation

En le définissant sur true, s'il n'est pas entré, il ne sera pas envoyé et il ne sera jugé que par l'heure.




#### **`console`**
```ruby

"open_time(4i)"=>"", "open_time(5i)"=>"", "close_time(4i)"=>"", "close_time(5i)"=>""

La partie date n'était pas incluse dans les paramètres et le message d'erreur pouvait être affiché en toute sécurité.

référence

Recommended Posts

Comment spécifier la validation pour time_field
[Validation] rails Comment spécifier après la date d'aujourd'hui
Comment spécifier l'index de JavaScript pour l'instruction
[Rails] Comment utiliser la validation
Comment installer JMeter pour Mac
Comment utiliser binding.pry pour afficher le fichier
Comment installer Play Framework 2.6 pour Mac
Comment créer un référentiel Maven pour 2020
[Ruby] Comment utiliser slice pour les débutants
Comment implémenter TextInputLayout avec la fonction de validation
Option pour spécifier le moment de l'exécution de la validation [on:]
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Comment spécifier l'attribut id dans JSF
[Pour les débutants] Comment déboguer avec Eclipse
[Java] Comment tester s'il est nul dans JUnit
Comment créer une base de données H2 n'importe où
Comment découvrir les tendances de l'OSS pour le développement Web
Comment utiliser un tableau pour les clés HashMap
Comment créer des pages pour le tableau "kaminari"
[Rails] Comment implémenter un test unitaire d'un modèle
[Pour les débutants] Comment implémenter la fonction de suppression
Comment créer un JRE léger pour la distribution
[Java] (pour MacOS) Méthode de définition du chemin de classe
[Pour les super débutants] Comment utiliser l'autofocus: vrai
[Java] Comment rendre plusieurs boucles for uniques
Comment implémenter la pagination dans GraphQL (pour ruby)
Comment développer OpenSPIFe
Comment définir l'injection de dépendance Spring Boot (DI)
Comment créer l'application Docker + Springboot (pour l'apprentissage de base)
Comment appeler AmazonSQSAsync
Comment utiliser Map
Comment écrire des rails
Comment utiliser rbenv
Comment écrire un test unitaire pour Spring Boot 2
Comment créer un environnement Docker avec Gradle pour IntelliJ
Rails / Ruby: Comment obtenir du texte HTML pour Mail
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment traiter Aucun modèle de demande interactive
[Pour les débutants] Comment utiliser Stream API après Java 8
Comment utiliser collection_select
[Spring Boot] Comment créer un projet (pour les débutants)
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment installer Docker
Comment utiliser MapStruct
Comment utiliser TreeSet
Comment utiliser Truth (bibliothèque d'assertions pour Java / Android)