2011-04-12 4 views
0

observateur OrderItem doenst calculer la somme totale lors de la mise à jour OrderItem: (( ce qui ne va pasObserver ROR ne marche pas le travail

class OrderItemObserver < ActiveRecord::Observer 
    def after_save(order_item) 
     order_item.order.total_sum = order_item.order.order_items.collect{|i| i.price.to_i}.sum  
    end 
end 

répertoriés dans application.rb

config.active_record.observers = :order_observer, :order_item_observer 
+0

Salut zakusha, pouvez-vous mettre votre journal de développement lorsque vous enregistrez un order_item? – Awea

Répondre

0

Le résultat est ensuite calculé mis au rebut comme vous ne sauvegardez pas le résultat

class OrderItemObserver < ActiveRecord::Observer 
    def after_save(order_item) 
     order = order_item.order 
     order.total_sum = order.order_items.collect{ |i| i.price.to_i }.sum 
     order_item.save 
    end 
end 

La valeur est maintenant enregistrée.variable est juste pour ranger les choses un peu.

+0

merci beaucoup, maintenant tout fonctionne correctement. J'ai supposé à tort que les rappels activent l'enregistrement, sauf eux-mêmes – kashlo

Questions connexes