J'ai les messages d'erreur de validation suivants à venir lorsque j'essaie de soumettre un formulaire vierge: Ces messages sont pour les attributs suivants: P> start_time_time
start_time_time
start_time_ymd
start_time_ymd
stylist_services
4 Réponses :
Vous pouvez utiliser la route I18N pour modifier le nom d'affichage de l'attribut.
Il est courant de boucler sur mais un message "complet" est composé du nom de champ localisé suivi de la message (comme vous l'avez vu; c'est parce que les messages sont généralement des choses comme "ne peuvent pas être blanches"). Si vous voulez juste que le message d'erreur réel moins le nom du champ, utilisez l'itérateur objet.full_mesages code> pour sortir chaque message complet: chacun intégré code> à la place: p> <% if object.errors.any? %>
<h2>Errors</h2>
<ul>
<% object.errors.each do |field, msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
<h2>Errors</h2>
<ul>
<li>Looks like you forgot the appointment start time.</li>
<li>Sorry, we can't understand "" as a time.</li>
<li>Please choose a date for the appointment.</li>
<li>Sorry, we can't understand "" as a date.</li>
<li>Please choose at least one service.</li>
</ul>
J'ai fait presque la même chose que Brandon.
Tout d'abord, j'ai écrit une fonction d'aide pour l'objet que les erreurs rendraient pour. p> alors, dans La vue qui a la forme étant validée, j'ai fait:
(Remarque: Ceci est le code HAML non html, mais les balises sont toujours les mêmes afin que vous puissiez voir clairement ce que je fais) p> qui m'a fait pour moi, non gemmes ou plugins tiers. p> -Demitterie p> p>
Dans Rails 3.2.6, vous pouvez supprimer l'inclusion du nom d'attribut en définissant des erreurs.Format dans un fichier local (par exemple, config / local / fr.yml): Sinon, le format par défaut est "% {attribut}% {message}". P> p>
Quel code utilisez-vous dans votre vue pour afficher les messages d'erreur?
Vous avez à peu près deviné dans votre réponse, Brandon. Ce que vous mettez là est utile et bon à savoir. L'autre réponse se trouve être une meilleure solution dans mon cas, mais j'aimerais pouvoir sélectionner les deux réponses comme correctes.