Ich möchte die Methoden zusammenfassen, die beim Anzeigen der Fehlermeldung verwendet werden.
Die any? -Methode gibt false zurück, wenn alle Elemente false sind. Wenn ein Element wahr ist, gibt es sofort wahr zurück.
Wie man schreibt ist so
p [false, nil].any? # => false
Angenommen, Sie schreiben die Beschreibung einer Fehlermeldung in eine Teilvorlage und legen fest, dass sie nur angezeigt wird, wenn das Objekt Fehlerinformationen enthält.
app/controllers/items_controller.rb
def create
@item = Item.new(item_params)
if @item.save
redirect_to root_path
else
render :new
end
end
Wenn das Speichern aufgrund von Validierung usw. mit dieser Beschreibung fehlschlägt Stellen Sie ein, um zur neuen Aktion zurückzukehren.
ruby:app/views/items/new.html.erb
<%= form_with model: @item, local: true do |f| %>
<%= render 'shared/error_messages', model: @item %>
Bringen Sie das Modellobjekt mit den Fehlerinformationen zum Renderziel.
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 %>
Überprüfen Sie den Inhalt von Fehlern mit der any? -Methode. Wenn diese vorhanden ist, ist sie wahr und der Fehler wird wiederholt.
Es ist auch der gegenwärtigen Methode ziemlich ähnlich, aber der beliebigen Methode
Im obigen Beispiel wird die Fehlermeldung durch iterative Verarbeitung angezeigt.
Wenn Sie für jede Etikettenposition eine Fehlermeldung anzeigen möchten, können Sie die Methode include? Verwenden.
Recommended Posts