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.
Afin de garder l'ordre auquel j'étais accro, je vais le décrire en trois étapes.
<div class="time-field">
<%= f.time_select :open_time %> 〜
<%= f.time_select :close_time %>
</div>
Étant donné que l'heure actuelle est affichée telle quelle, la validation passera même si vous oubliez le réglage.
<div class="time-field">
<%= f.time_select :open_time, prompt: true %> 〜
<%= f.time_select :close_time, prompt: true %>
</div>
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.
ignore_date: true
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é.
Recommended Posts