ActiveRecord mises à jour partielles Padrino
-
11-10-2019 - |
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?
La solution
Ce n'est pas liée à padrino mais seulement enregistrement actif.
ESSAYEZ before_save.