2016-04-02 13 views
0

Cart nesnesindeki toplam sepet fiyatı özniteliğini güncellemek için cartItems nesnesinden sonra after_save aramayı kullanmaya çalışıyorum (cartItems öğesi). Ama ben google üzerinde araştırma yaptım ve kodu doğru gibi görünüyor benraylar üzerinde etkin kayma aktif kayıt after_save üst nesneyi yakalamadan sonra

undefined method cart_items on nil class 

. Ancak bunu yürütemiyorum. Aşağıda hem sepetin hem de cart_items modelinin içeriği bulunur. Lütfen yardım et !

cart.rb

class Cart < ActiveRecord::Base 
    has_many :cart_items 
    belongs_to :user 
end 

cart_item.rb

class CartItem < ActiveRecord::Base 
belongs_to :cart 
after_save :update_cart_total_and_tax_amount 

private 
def update_cart_total_and_tax_amount 
    cartTotal=0 
    applicableTax=0 
    self.cart.cart_items.each do|cartItem| 
    cartTotal = cartTotal + cartItem.inr_amount 
    end 
    cart.cart_total=cartTotal 
    tax = Tax.find(1) 
    totalTax = (cartTotal * percentage_tax)/100 
    if totalTax < tax.minimum_tax 
    applicableTax=tax.minimum_tax 
    else 
    applicableTax = totalTax 
    end 
    cart.tax_amount = applicableTax 
    cart.save 
    end 
end 

cevap

0

Sen doğrultusunda kendini gerekmez

self.cart.cart_items.each do|cartItem|