nil的未定义方法'update_attributes':NilClass

时间:2016-05-15 08:49:19

标签: ruby-on-rails ruby-on-rails-4

我正在尝试使用此私有方法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

1 个答案:

答案 0 :(得分:0)

您的cart关联不一定在您的代码中定义,因此如果cart_id为零或没有引用有效购物车,则会返回nil。您可能应该为其添加状态验证,或者防止更新卡属性(如果它不存在):

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