我有一些非常奇怪的问题,我无法调试。
这是我的代码:
def find_order_and_payment
@payment = Spree::Payment.find_by_identifier(params['session_id'])
Rails.logger.info "payment_id #{@payment.id}"
@order = @payment.order
end
这是输出:
I, [2014-01-17T16:39:43.084827 #12342] INFO -- : payment_id 187
I, [2014-01-17T16:39:43.090718 #12332] INFO -- : Completed 500 Internal Server Error in 448ms
NoMethodError (undefined method `id' for nil:NilClass):
app/controllers/payu_status_controller.rb:36:in `find_order_and_payment'
第36行是Rails.logger
的行。我不明白,为什么我得到了正确的id
,但同一行返回未定义的方法id
?如果我从控制台调用上面的代码,一切都按预期工作。