Aufruf create
speichert gültige Objekte. Sie müssen danach nicht mehr save
anrufen. Aber wir wissen, dass es nicht gerettet wird. Der erste Verdacht ist ein Validierungsfehler.
debuggen Ihre sparen Sie create!
Methode anstelle von create
verwenden. Wenn das Speichern fehlschlägt, wird eine Ausnahme ausgelöst. Aber die Verwendung von create!
sowie andere "Bang" -Methoden ist nicht sehr gute Praxis. Daher kann ich Ihnen nicht empfehlen, es in Ihrem Produktionscode zu verwenden.
Und noch ein Tipp für den Fall, wenn create!
Werke und create
nicht: Best Practice Schöpfung in Ihrem Anwendungsfall auszuführen ist so etwas wie folgt vor:
def createUser
user = Usuario.new(nombre: "aa", corp: self, email: "[email protected]", password: 123456, password_confirmation: 123456, rol: 3)
user.save ? true : user.errors
end
Dieser Code erfolgreich Ergebnis zurück (true
) wenn Ihre user
erstellt wurde und Validierungsfehler aufgetreten sind, wenn nicht. Damit können Sie Ihre Fehler in dem Code, der createUser
aufruft, richtig behandeln. Und es wird auch zeigen, warum Ihr Speichern jetzt nicht funktioniert.
Das war mein Mystake Tipp, aber ist nicht der Fehler, sorry – Bryan
erstellen! gearbeitet, vielen Dank. – Bryan
Festhalten. Es ist nicht sehr gut, 'create!' Und andere "bang" -Methoden in Ihrem Produktionscode zu verwenden. Es ist jedoch nützlich für das Debugging. Also solltest du besser herausfinden, warum dein einfaches 'create' nicht funktioniert hat. Denken Sie immer noch daran, dass Ihr "Corporacion" zu der Zeit, in der Sie "User" erstellen, nicht existiert. – VAD