2016-04-02 20 views
0

カートオブジェクト(cartItemsの親)の合計カート価格属性を更新するために、after_saveコールバックを使用しようとしています。しかし、私はエラーを取得していますruby​​ on railsアクティブレコードafter_saveが親オブジェクトをキャプチャしていない

undefined method cart_items on nil class 

Googleで調べたところ、コードは正しいようです。しかし私はそれを実行することができません。以下はcartとcart_itemsの両方のモデルの内容です。助けてください !

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 

答えて

0

あなたが行で自己を必要としない

self.cart.cart_items.each do|cartItem| 
関連する問題