Meine Rails-App ändert den Status eines Elements, aber wenn dies der Fall ist, können potenzielle Fehler auftreten. Ich entwickle eine Möglichkeit, dem Benutzer zu ermöglichen, diese Fehler zu überschreiben, und anschließend einen PDF-Bericht zu erstellen, damit sie ihn als eine Quittung dessen, was sie getan haben, ausdrucken können.Datenbank in Rails App-Updates, bevor ein Prawn-PDF-Bericht erstellt werden kann
Hier ist der Code, der den Bericht und schließt die Aktion für jedes Element entwickelt:
def report
ids = params[:ids].split()
@items = Item.order("id").where(id: ids)
respond_to do |format|
format.html
format.pdf { prawnto(page_size: "A4", inline: true)}
end
@items.each do |item|
item.action
end
end
Mein Problem ist, dass, um auf Fehler zu prüfen (zum Beispiel unvereinbar Zustände des Elements), I müssen den Artikel vor die Aktion in Kraft gesetzt testen.
Jeder Test, den ich bisher gemacht habe, zeigt an, dass die items.each-Blockierung ausgewertet wird, bevor der Bericht abgeschlossen ist. Meine App benötigt das Gegenteil.
Jede Hilfe und/oder eine Erklärung, warum dieses Verhalten auftritt, würde sehr geschätzt werden.