Ich gehe ein paar Tutorials für Rails 3 und 4 durch und stoße auf etwas, über das ich ein paar Einblicke hätte:
Was ist der Unterschied zwischen Model.new und Model.create in Bezug auf die Create-Aktion? Ich dachte, du verwendest die create
-Methode im Controller, um zB zu speichern. @post = Post.create(params[:post])
, aber es sieht so aus, als würde ich mich irren. Jede Einsicht wird sehr geschätzt.
Ich habe zwei Fragen
@post = Post.create(post_params)
? Modell.neu
Im Folgenden wird ein Post-Modell anhand der Parameter instanziiert und initialisiert:
%Vor% Sie müssen save
ausführen, um Ihre Instanz in der Datenbank zu erhalten:
Model.create
Das folgende instanziieren, initialisieren und speichern in der Datenbank ein Post-Modell mit den Parametern:
%Vor% Sie müssen den Befehl save
nicht ausführen, er ist bereits integriert.
Weitere Informationen zu new
hier
Weitere Informationen zu create
hier
Die Methode Model.new
erstellt eine Nullmodellinstanz und die Methode Model.create
versucht zusätzlich, sie direkt in der Datenbank zu speichern.
Model.create
erstellt ein Objekt (oder mehrere Objekte) und speichert es in der Datenbank, wenn die Validierungen bestanden werden. Das resultierende Objekt wird zurückgegeben, unabhängig davon, ob das Objekt erfolgreich in der Datenbank gespeichert wurde oder nicht.
object = Model.create
benötigt keine Methode object.save
, um die Werte in der Datenbank zu speichern.
In der Methode " Model.new
" können neue Objekte als leer (kein Bauparameter übergeben)
In Model.new(params[:params])
wird mit Attributen vorbelegt, aber noch nicht im DB gespeichert (übergeben Sie einen Hash mit Schlüsselnamen, die den zugehörigen Tabellenspaltennamen entsprechen).
Nach object = Model.new
müssen wir das Objekt um object.save
Tags und Links ruby-on-rails ruby-on-rails-4 ruby-on-rails-3.2