Question

Comment puis-je configurer ActiveRecord à utiliser partial_updates dans une application Padrino?

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

Considérez l'utilisateur a le nom de 'attributs et « pays » entre autres dans la base de données.
Lorsque le nom des mises à jour de l'utilisateur, il envoie une notification par courrier électronique comme prévu. Cependant, même lorsque l'utilisateur change du pays (ou tout autre) attribut, il envoie la notification de changement de nom qui est inacceptable.

Lors de la vérification des journaux, j'ai trouvé que la requête de mise à jour pour le pays fait une mise à jour complète, le réglage de tous les attributs de l'enregistrement de l'utilisateur. En tant que tel le name_changed? méthode retourne vrai et e-mail de notification de changement de nom est envoyé.

Si je mets la ligne suivante dans app.rb

ActiveRecord::Base.partial_updates = true

Je ne vois aucune différence. Tous les appels update_attribute font encore une mise à jour complète du dossier.
Y at-il d'autre solution ou solution de contournement?

Était-ce utile?

La solution

Ce n'est pas liée à padrino mais seulement enregistrement actif.

ESSAYEZ before_save.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top