2011-04-12 87 views
0

OrderItem的观察者doenst更新OrderItem的,当计算总和:(( 什么是错的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 2011-04-12 21:18:07

回答

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 2011-04-23 11:51:54