2013-11-14 45 views
0

當我嘗試在success.html.erb中顯示order.id時,我遇到了nilLNilClass的未定義方法'id'的問題。有誰知道如何幫助我呢?非常感謝所有的幫助。無法顯示順序:未定義的方法`id'爲零:NilClass

success.html.erb

Invoice Number: <%= @order.id %><br/> 
Amount Paid: S$<%= @order.price_in_cents/100 %> 

order_controller.rb

def create 
    @user = current_user 
    @order = current_cart.build_order(order_params) 
    @order.line_items = current_cart.line_items 
    @order.ip_address = request.remote_ip 
    @order.user_id = current_user.id 
    @order.amount = current_cart.total_price 

    if @order.save 

    if @order.purchase 

     @order.line_items.each do |item| 
     @order_place = OrderPlace.new 
     @order_place.place_id = item.place.id 
     @order = current_order 
     @order_place.order_id = item.order.id 
     @order_place.save 

    end 
    Cart.destroy(session[:cart_id]) 
    session[:cart_id] = nil 

    render :action => "success" 

    else 
    render :action => "failure" 
    end 
else 
    render :action => 'new' 
end 

**更新

def current_order 
    if session[:order_id] 
     current_order = Order.find(session[:order_id]) 
end 
end 
+0

在這個控制器的行動方式很多......但首先....什麼是@order = current_order? – TheIrishGuy

+0

我已經更新了描述中的current_order。我想知道我是否正確地做了 – sadocean

+0

好的,所以我們在視圖中有一個@order,基本上是零,所以它沒有正確設置?我詢問的這條線是給你的問題,代碼是好的,但邏輯不正確。該行是否意味着設置會話[:order_id]變量? – TheIrishGuy

回答

0

除去current_order方法 並刪除@order = current_order行。

我會從那裏開始。

相關問題