[RUBY] [Schienen] Unterschied zwischen Erstellungsmethode und neuer + Speichermethode

Umgebung

・ Schienen 6.0.3.2 ・ MySQL Ver 14.14 Distrib 5.6.47 ・ Osx10.15

Zusammenfassung

Wenn Sie "Contoller" mit "Rails" lernen, lernen Sie "Active Record" -Methoden wie "new", "save", "create", "destroy". Zu dieser Zeit habe ich gelernt, dass die "create method" "new" + "save" ist.

Als Anfänger habe ich falsch verstanden, dass "dann" erstellen "einfacher und leichter zu sehen ist, also benutze ich Kochi!". Und als ich meine eigene App erstellte, funktionierte es manchmal nicht gut mit "erstellen". Ich werde schreiben, was ich damals gelernt habe.

Warum in new + save teilen?

Kurz gesagt, wann sollte man "new" + "save" verwenden, ohne "create method" in "create action" zu verwenden? Zum Beispiel die Beschreibung in der Steuerung

def create
  @message = Message.create(message_params)
end

nicht

def create
  @message = Messages.new(message_params)
  @message.save
end

Hier.

① Beim Schreiben einer bedingten Anweisung mit if usw.

def create
    @message = Messages.new(message_params)
    if @message.save
      redirect_to(Anwendbarer Pfad)
    else
      flash.now[:alert] = 'Bitte geben Sie eine Nachricht ein.'
      render :index
    end
end

Wenn Sie "create" verwenden, wenn Sie eine bedingte Anweisung wie oben beschrieben verwenden, funktioniert die bedingte Anweisung nicht gut und die Operation funktioniert nicht gut, wenn die Erstellung nach "else" fehlschlägt.

Es gibt auch einen Punkt, an dem es einfacher ist zu erkennen, ob es viele Beschreibungen gibt.

② Bei Verwendung von Render

Wenn Sie new beschreiben, können Sie die zu diesem Zeitpunkt mit render erstellte Instanzmethode verwenden. Obwohl dies im obigen Beispiel nicht der Fall ist, ist es besser, "neu" zu beschreiben, auch wenn Sie die: id erben und verwenden möchten.

Schließlich

Ich habe mich gefragt, wie sie sich unterscheiden würden, wenn sie sagen würden, dass sie dieselbe Bedeutung haben, und ich habe einige Fehler gemacht, also habe ich sie hier geschrieben.

Recommended Posts

[Schienen] Unterschied zwischen Erstellungsmethode und neuer + Speichermethode
[Rails] Ich habe den Unterschied zwischen neuer Methode, Speichermethode, Erstellungsmethode und Erstellungsmethode untersucht.
[Rails / Active Record] Über den Unterschied zwischen create und create!
Unterschied zwischen neu und in Rais Action Controller erstellen
Unterschied zwischen Instanzmethode und Klassenmethode
Unterschied zwischen dem Operator == und der Methode eqals
[Rails] Unterschied zwischen find und find_by
[Rails] Unterschied zwischen redirect_to und Rendern
[Rails] Unterschied zwischen redirect_to und render [Anfänger]
Unterschied zwischen Mitglied und Sammlung von Schienen route.rb
Unterschied zwischen vh und%
Unterschied zwischen i ++ und ++ i
[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
Unterschied zwischen Produkt und Variante
Unterschied zwischen redirect_to und render
[Schienen] erfordern Methode und Genehmigungsmethode
Unterschied zwischen redirect_to und render
Unterschied zwischen CUI und GUI
Unterschied zwischen Mockito-Core und Mockito-All
Unterschied zwischen Klasse und Instanz
Unterschied zwischen Bundle und Bundle-Installation
Unterschied zwischen ArrayList und LinkedList
Unterschied zwischen render und redirect_to
Unterschied zwischen List und ArrayList
Unterschied zwischen .bashrc und .bash_profile
Unterschied zwischen StringBuilder und StringBuffer
Unterschied zwischen render und redirect_to
Was ist der Unterschied zwischen einer Aktion und einer Instanzmethode?
Überschreiben wir den Unterschied zwischen == (Identität) und der Methode equals (Äquivalenz).
[Ruby] Unterschied zwischen get und post
Unterschied zwischen Schnittstelle und abstrakter Klasse
[Schienen] Startzeit und Endzeit speichern
[Java] Unterschied zwischen Hashmap und HashTable
[Terminal] Unterschied zwischen irb und pry
JavaServlet: Unterschied zwischen executeQuery und executeUpdate
[Ruby] Unterschied zwischen is_a? Und instance_of?
Grober Unterschied zwischen RSpec und Minitest
Erstellen Sie eine neue App mit Rails
Unterschied zwischen Instanzvariable und Klassenvariable
[JAVA] Unterschied zwischen Abstract und Interface
Unterschied zwischen Stream Map und FlatMap
[Java] Unterschied zwischen Array und ArrayList
Unterschied zwischen primitivem Typ und Referenztyp
Unterschied zwischen string.getByte () und Hex.decodeHex (string.toCharaArray ())
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
[Android] Unterschied zwischen finish () und return;
Der Unterschied zwischen der Ruby-Instanzmethode und der Klassenmethode ist leicht zu verstehen.
[Rails] Unterschied im Verhalten zwischen Delegat und has_many-through bei Eins-zu-Eins-zu-Viele
Unterschied zwischen final und Immutable in Java
[Hinweis] Unterschied zwischen Bundle-Installation und -Update
[Rails6] Erstelle eine neue App mit Rails [Anfänger]