[RAILS] So legen Sie die Validierung für time_field fest

Hintergrund

Ich habe versucht, die Geschäftszeiten mit `` `time_field``` zu registrieren, als ich das Formular mit Rails implementiert habe, aber die Validierung hat nicht funktioniert und ich hatte es schwer, also werde ich es als Aufzeichnung aufbewahren.

Lösungen

Um die Reihenfolge beizubehalten, nach der ich süchtig war, werde ich sie in drei Schritten beschreiben.

  1. Generieren Sie ein Zeitauswahlfeld ohne Optionen
    <div class="time-field">
      <%= f.time_select :open_time %> 〜
      <%= f.time_select :close_time %>
    </div>

204b83a9e02c5af89386534b8d0aeac4.png Da die aktuelle Uhrzeit unverändert angezeigt wird, wird die Validierung auch dann bestanden, wenn Sie die Einstellung vergessen haben.

  1. Fügen Sie als Option `` `prompt: true``` hinzu
    <div class="time-field">
      <%= f.time_select :open_time, prompt: true %> 〜
      <%= f.time_select :close_time, prompt: true %>
    </div>

be7a44a3360206f251ae9e27117a9c94 (1).png Wenn Sie damit keine Zeit ausgewählt haben, sollte diese durch Validierung abgespielt und ein Fehler angezeigt werden! Ich dachte, aber es wird kein Fehler angezeigt.

  1. Fügen Sie `` `ignore_date: true```
    hinzu Der Grund, warum die Validierung nicht abgespielt wird, obwohl die Uhrzeit nicht angegeben werden sollte, ist, dass die Datumsinformationen ebenfalls gesendet werden. Überprüfen Sie die Parameter beim Ausführen der Erstellungsaktion wie folgt

Konsole


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

Die erste Hälfte `" open_time (1i) "=>" 1 "," open_time (2i) "=>" 1 "," open_time (3i) "=>" 1 "` ist das Jahr, der Monat, der Tag Wenn Sie die Daten nicht eingeben, wird der Wert "1" eingegeben und gesendet, sodass die Validierung bestanden werden kann.
Fügen Sie die Option `` `ignore_date``` hinzu, um diese Situation zu vermeiden

Wenn Sie den Wert auf true setzen, wird er nicht gesendet und nur nach der Zeit beurteilt.




#### **`Konsole`**
```ruby

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

Der Datumsteil war nicht in den Parametern enthalten und die Fehlermeldung konnte sicher angezeigt werden.

Referenz

Recommended Posts

So legen Sie die Validierung für time_field fest
[Validierung] Schienen Wie nach dem heutigen Datum angeben
So geben Sie den JavaScript-Index für die Anweisung an
[Rails] Verwendung der Validierung
So installieren Sie JMeter für Mac
Verwendung von binding.pry für die Ansichtsdatei
So installieren Sie Play Framework 2.6 für Mac
So erstellen Sie ein Maven-Repository für 2020
[Ruby] Wie man Slice für Anfänger benutzt
So implementieren Sie TextInputLayout mit Validierungsfunktion
Option zum Festlegen des Ausführungszeitpunkts für die Validierung [am:]
Benötigt für iOS 14? So legen Sie NSUserTrackingUsageDescription fest
So geben Sie das ID-Attribut in JSF an
[Für Anfänger] So debuggen Sie mit Eclipse
[Java] So testen Sie, ob es in JUnit null ist
So erstellen Sie überall eine H2-Datenbank
So finden Sie die Trends von OSS für die Webentwicklung heraus
So verwenden Sie ein Array für HashMap-Schlüssel
So erstellen Sie Pagenationen für das "Kaminari" -Array
[Rails] So implementieren Sie einen Unit-Test eines Modells
[Für Anfänger] So implementieren Sie die Löschfunktion
So erstellen Sie eine leichte JRE für den Vertrieb
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
[Für Super-Anfänger] Verwendung des Autofokus: true
[Java] Wie man mehrere for-Schleifen einzeln macht
So implementieren Sie Paginierung in GraphQL (für Ruby)
So entwickeln Sie OpenSPIFe
So stellen Sie Spring Boot Dependency Injection (DI) ein
So erstellen Sie die Docker + Springboot-App (für grundlegendes Lernen)
So rufen Sie AmazonSQSAsync auf
Verwendung von Map
Wie schreibe ich Rails
Wie benutzt man rbenv?
So schreiben Sie einen Komponententest für Spring Boot 2
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
Rails / Ruby: So erhalten Sie HTML-Text für Mail
Verwendung mit_option
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung der Karte
Umgang mit Keine Vorlage für interaktive Anfragen
[Für Anfänger] So bedienen Sie die Stream-API nach Java 8
Verwendung von collection_select
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Wie benutzt man Twitter4J
Wie benutzt man active_hash! !!
So installieren Sie Docker
Verwendung von MapStruct
Verwendung von TreeSet
Verwendung von Truth (Assertion Library für Java / Android)