Rechnung-Modell: sailsjs - ein POST mehrere Datensätze und Verbände erstellt
attributes: {
number: {
type: 'integer'
}
lines: {
collection: 'line',
via: 'invoice'
}
}
Linie-Modell:
attributes: {
name: {
type: 'integer'
}
invoice: {
model: 'invoice'
}
}
Wie Sie diese Modelle sehen habe eine Eins-zu-Viele-Beziehung. Alles funktioniert gut.
Aber jetzt will ich eine neue Rechnung und neue Linien erstellen mit dem Blueprint-API, die verbunden sind.
Die Dokumentation sagt, dass Sie einen neuen Datensatz erstellen können und fügen Sie ihn in eine bestehende mit diesem Schema: POST /:model/:id/:association/:fk
Aber es gibt nicht an, ob es möglich ist, zwei Datensätze gleichzeitig zu erstellen und sie in Verbindung bringen.
Weitere Details: Ich habe eine Rechnung und in dieser Rechnung können Sie Zeilen mit Produkten, deren Menge und anderen Dingen hinzufügen. Jetzt, wenn der Benutzer auf Speichern klickt, muss ich eine neue Rechnung und die neuen Zeilen erstellen und sie irgendwie zuordnen.
Sollte ich eine benutzerdefinierte Controller-Aktion für diese erstellen, oder überlege ich dies und ich sollte diese ganze Sache komplett anders machen?
Leider funktioniert dies nicht. Dies ist die Standardmethode von SailsJS, die alle 'create' Anfragen bearbeitet. Außerdem habe ich es mit dem genauen Code in einer benutzerdefinierten Aktion ausprobiert und es funktioniert nicht. Wissen Sie zufällig, ob es anders geht? Die Rechnung wird erstellt, aber es sind keine Zeilen darin enthalten. – EinArzt
Das ist komisch, bist du sicher, dass du deine create Funktion im InvoiceController überschrieben hast. Ich bearbeite meine Antwort für eine alternative Lösung mit Versprechungen. – Jordi