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.
Um die Reihenfolge beizubehalten, nach der ich süchtig war, werde ich sie in drei Schritten beschreiben.
<div class="time-field">
<%= f.time_select :open_time %> 〜
<%= f.time_select :close_time %>
</div>
Da die aktuelle Uhrzeit unverändert angezeigt wird, wird die Validierung auch dann bestanden, wenn Sie die Einstellung vergessen haben.
<div class="time-field">
<%= f.time_select :open_time, prompt: true %> 〜
<%= f.time_select :close_time, prompt: true %>
</div>
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.
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.
Recommended Posts