Je voudrais résumer les méthodes utilisées lors de l'affichage du message d'erreur.
La méthode any? Renvoie false si tous les éléments sont faux. Si un élément est vrai, il renvoie immédiatement vrai.
Comment écrire c'est comme ça
p [false, nil].any? # => false
Par exemple, supposons que vous écriviez la description d'un message d'erreur dans un modèle partiel et que vous le définissiez pour qu'il s'affiche uniquement lorsque l'objet contient des informations d'erreur.
app/controllers/items_controller.rb
def create
@item = Item.new(item_params)
if @item.save
redirect_to root_path
else
render :new
end
end
Lorsque l'enregistrement échoue en raison de la validation, etc. avec cette description Réglez pour revenir à la nouvelle action.
ruby:app/views/items/new.html.erb
<%= form_with model: @item, local: true do |f| %>
<%= render 'shared/error_messages', model: @item %>
Apportez l'objet de modèle avec les informations d'erreur à la destination du rendu.
ruby:app/views/shared/_error_messages.html.erb
<% if model.errors.any? %>
<div class="error-alert">
<ul>
<% model.errors.full_messages.each do |message| %>
<li class='error-message'><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
Vérifiez le contenu des erreurs avec la méthode any?, Et si elle existe, elle sera vraie et l'erreur se répétera.
Également assez similaire à la méthode actuelle, mais la méthode any
Dans l'exemple ci-dessus, le message d'erreur est affiché par un traitement itératif.
Si vous souhaitez afficher un message d'erreur pour chaque emplacement d'étiquette, vous pouvez utiliser la méthode include ?.
Recommended Posts