Zusammenfassung der Methoden zum Aktualisieren mehrerer Spalten [Ruby on Rails]

Rails verfügt über mehrere Methoden, um mehrere Spalten gleichzeitig zu aktualisieren. Daher habe ich die Unterschiede zusammengefasst.


assign_attributes

Funktionen </ strong>

  • DB wird nicht gespeichert.
  • Alias ist Attribute =

Beispiel </ strong> (wenn Sie eine Tabelle namens Benutzer haben)

user = User.first
user.assign_attributes(family_name: "foo", given_name: "bar")
user.save

#attribute=Im Falle von
user.attributes = { family_name: "foo", given_name: "bar" }

Es wird nicht gespeichert, daher müssen Sie save aufrufen.


update_attributes

Funktionen </ strong>

  • In DB gespeichert.
  • Alias ist Update
  • Validierungsprüfungen und Rückrufaufrufe werden ebenfalls durchgeführt.
  • Gibt zurück, ob das Speichern wahr oder falsch ist.

Verwendungsbeispiel </ strong>

user = User.first
user.update_attributes(family_name: "foo", given_name: "bar")

#Zur Aktualisierung
user.update(family_name: "foo", given_name: "bar")

Es ist nicht erforderlich, save separat aufzurufen.


update_attributes!

Funktionen </ strong>

  • Wenn das Speichern fehlschlägt, tritt eine Ausnahme auf.
  • Alias ist Update!

Verwendungsbeispiel </ strong>

user = User.first
user.update_attributes!(family_name: "foo", given_name: "bar")

#update!Im Falle von
user.update!(family_name: "foo", given_name: "bar")

Die Art und Weise, wie das Ergebnis zurückgegeben wird, unterscheidet sich von update_attributes.


update_columns

Funktionen </ strong>

  • Die schnellste Aktualisierungsgeschwindigkeit, da direkt auf die Datenbank zugegriffen wird.
  • Keine Validierungsprüfungen oder Rückrufaufrufe.
  • update_at wird nicht aktualisiert.

Verwendungsbeispiel </ strong>

user = User.first
user.update_columns(family_name: "foo", given_name: "bar")

Bitte beachten Sie, dass es keine Validierungsprüfungen oder Rückrufaufrufe gibt.


Referenz https://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-update_attributes

Recommended Posts