Rails: update_attribute vs update_attributes

Object.update_attribute(:only_one_field, "Some Value")
Object.update_attributes(:field1 => "value", :field2 => "value2", :field3 => "value3")

Beide von diesen aktualisieren ein Objekt, ohne dass AR explizit angewiesen werden muss, es zu aktualisieren.

Rails API sagt:

for update_attribute

Aktualisiert ein einzelnes Attribut und speichert den Datensatz, ohne die normale Validierungsprozedur zu durchlaufen. Dies ist besonders nützlich für Boolesche Flags in vorhandenen Datensätzen. Die reguläre update_attribute-Methode in Base wird durch diese ersetzt, wenn das Validierungsmodul eingemischt wird. Dies ist standardmäßig der Fall.

for update_attributes

Aktualisiert alle Attribute aus dem übergebenen Hash und speichert den Datensatz. Wenn das Objekt ungültig ist, schlägt das Speichern fehl und es wird false zurückgegeben.

Wenn ich das Objekt nicht validieren lassen möchte, sollte ich update_attribute verwenden. Was ist, wenn ich dieses Update auf einem before_save habe, läuft es dann über?

Meine Frage ist, ob update_attribute auch das Speichern vor dem Speichern oder nur die Überprüfung umgeht.

Auch, wie lautet die korrekte Syntax, um einen Hash an update_attributes zu übergeben? Schauen Sie sich mein Beispiel oben an.

Antworten auf die Frage(22)

Ihre Antwort auf die Frage