未定义的方法'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
答
你cart
关联不一定在你的代码中定义的,所以它会返回nil如果cart_id
为零或不引用有效的车。您应该为其添加一个存在验证,或者防止更新卡属性(如果它不存在):
after_create :mark_cart_as_purchased, if: -> { cart.present? }
您的购物车对象为零。 – Rog
@罗格是的,但由于这个联系,它不应该是。对? –
不一定。仅仅因为你有一个关联并不意味着它存在,它只意味着它可以存在。如果你需要购物车,你需要先创建一个购物车。 – Rog