2011-04-12 3 views
0

OrderItem에 관찰자는 OrderItem에 업데이트 할 때 총 합계를 계산 doenst : (( 문제가 있는지를 ROR 관찰자 나던 작업

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 

이 결과는 계산 다음으로 폐기되고 application.rb

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

안녕하세요 zakusha, order_item을 저장할 때 개발 로그를 넣을 수 있습니까? – Awea

답변

0

에 나열된 결과를 저장하지 않습니다.

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 

값이 저장됩니다 .order 변수는 조금 깔끔한 것입니다.

+0

덕분에 이제는 제대로 작동합니다. 나는 콜백이 스스로 레코드 저장을 활성화한다고 잘못 생각했다. – kashlo