Frage

Wie konfiguriere ich Active Verwendung partial_updates in einer Padrino Anwendung?

Customer < ActiveRecord::Base
  after_update :check_name_change

  private
  def check_name_change
    if name_changed?
      # send mail notification for change of name.
    end
  end
end

Betrachten der Benutzer hat Attribute ‚Namen‘ und ‚Land‘ unter anderem in der Datenbank.
Wenn Benutzer Updates nennen, sendet er eine E-Mail-Benachrichtigung, wie erwartet. Doch selbst wenn der Benutzer das Land (oder anderes) Attribut ändert, sendet die Benachrichtigung für Namensänderung, die nicht akzeptabel ist.

Auf die Protokolle überprüft, fand ich, dass die Update-Abfrage für Land ist eine vollständige Aktualisierung zu machen, alle Attribute des Benutzers Rekord. Als solche ist die name_changed? Methode gibt true zurück und Benachrichtigungs-Email für Namensänderung gesendet wird.

Wenn ich die folgende Zeile setzen in app.rb

ActiveRecord::Base.partial_updates = true

sehe ich keinen Unterschied. Etwaige update_attribute Anrufe immer noch eine vollständige Aktualisierung des Datensatzes.
Gibt es eine andere Lösung oder Abhilfe?

War es hilfreich?

Lösung

This is not related to padrino but only to active record.

Try it on before_save.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top