2 Stimmen

before_update beim Speichern ignorieren

In manchen Fällen möchte ich before_update nicht ausführen. Bitte helfen Sie mir.

Fall A: für den Fall, dass ich before_update verwenden möchte

obj = Object.find(id)
obj.save

aber im Fall B möchte ich nicht before_update verwenden

obj = Object.find(id)
obj.save # in case I want used before_update

3voto

Simone Carletti Punkte 168374

Die Methode #save akzeptiert einen Hash der Option. Zum Überspringen von Validierungen:

obj.save(:validate => false)

Dies ist der dokumentierte Weg, um Validierungen unter Verwendung der öffentlichen API zu überspringen. Versuchen Sie nicht, send zu verwenden, um interne Methoden aufzurufen, sonst könnte Ihre Anwendung in Zukunft nicht mehr funktionieren.

0voto

krunal shah Punkte 15753

Update_without_callbacks und create_without_callbacks sind private Methoden. Diese Methoden rufen keine Rückrufe auf.

obj = Object.find(id)
obj.send(:update_without_callbacks)

obj = Object.new(:name => 'foo')
obj.send(:create_without_callbacks)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X