2016-03-02 79 views
0

按照本文档/教程(https://tryshoppe.com/docs/payment-gateways/stripe)试图将Shoppe(https://github.com/tryshoppe/shoppe)和Stripe支付(https://github.com/tryshoppe/shoppe-stripe)集成到我的Rails应用程序中。不知道为什么即时得到这个错误...专柜商务和条纹支付

找不到专柜::订购与“ID” =

def payment 
@order = Shoppe::Order.find(session[:current_order_id]) 
if request.post? 
if @order.accept_stripe_token(params[:stripe_token]) 
redirect_to checkout_confirmation_path 
end 

回答

0

错误是告诉你,它不能找到一个Shopped::Order带有空白标识。

这意味着参数session[:current_order_id]不包含任何信息。

您需要考虑纠正导致与session哈希中的:current_order_id键相关联的值为空的任何内容为空。

0

专柜文档中存在一个错误。为了访问current_order,您需要像这样在您的ApplicationController中创建助手。然后我建议使用current_order.id来代替。

的ApplicationController:

private 

    def current_order 
    @current_order ||= begin 
     if has_order? 
     @current_order 
     else 
     order = Shoppe::Order.create(:ip_address => request.ip) 
     session[:order_id] = order.id 
     order 
     end 
    end 
    end 

    def has_order? 
    session[:order_id] && @current_order = Shoppe::Order.includes(:order_items => :ordered_item).find_by_id(session[:order_id]) 
    end 

    helper_method :current_order, :has_order? 

OrdersController:

def payment 
    @order = Shoppe::Order.find(current_order.id) 
    ### rest of your code here ### 
end