未定义的方法'update_attributes'为零:NilClass

问题描述:

我试图update_attributes与这个私人的方法,由于该协会,我想我可以打电话cart.update_attributes但由于某种原因,它返回一个未定义的方法。有人请告诉我我做错了什么。未定义的方法'update_attributes'为零:NilClass

在此先感谢!

class PaymentNotification < ActiveRecord::Base 
    belongs_to :cart 
    serialize :params 
    after_create :mark_cart_as_purchased 


private 

    def mark_cart_as_purchased 
    if status == "Completed" 
     cart.update_attribute(:purchased_at, Time.now) 
    end 
    end 
end 
+0

您的购物车对象为零。 – Rog

+0

@罗格是的,但由于这个联系,它不应该是。对? –

+0

不一定。仅仅因为你有一个关联并不意味着它存在,它只意味着它可以存在。如果你需要购物车,你需要先创建一个购物车。 – Rog

cart关联不一定在你的代码中定义的,所以它会返回nil如果cart_id为零或不引用有效的车。您应该为其添加一个存在验证,或者防止更新卡属性(如果它不存在):

after_create :mark_cart_as_purchased, if: -> { cart.present? }