我正在尝试使用此私有方法update_attributes并且由于该关联,我认为我可以调用cart.update_attributes
但是由于某种原因,它返回一个未定义的方法。有人请告诉我我做错了什么。
提前致谢!
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 :(得分:0)
您的cart
关联不一定在您的代码中定义,因此如果cart_id
为零或没有引用有效购物车,则会返回nil。您可能应该为其添加状态验证,或者防止更新卡属性(如果它不存在):
after_create :mark_cart_as_purchased, if: -> { cart.present? }