'id' =

2017-12-23 10 views
1

で注文を見つけることができませんでした。ブラウザをシャットダウンしましたが、まだレンダリングしましたが、ローカルホストサーバーが再起動しましたが、エラーが残ります。私はミスをやっている'id' =

module ApplicationHelper 
    def current_order 
     if session[:order_id].nil? 
      Order.find(session[:order_id]) 
     else 
      Order.new 
     end 
    end 
end 
class OrderItemsController < ApplicationController 
    def create 
     @order = current_order 
     @order_item = @order.order_items.new(order_item_params) 
     @order.save 
     session[:order_id] = @order.id 
    end 

    def update 
     @order = current_order 
     @order_item = @order.order_item.find(params[:id]) 
     @order_item.update(order_item_params) 
     @order_items = @order.order_items 

    end 
    def destroy 
     @order = current_order 
     @order_item = @order.order_item.find(params[:id]) 
     @order_item.destroy 
     @order_items = @order.order_items 
    end 
private 
    def order_item_params 
     param.require(:order_item).permit(:product_id, :p_quantity) 
    end 
end 

..?

get '/products' => 'products#home' 
    resources :products 
    resources :order_items 
    resources :carts, only: [:show] 
    root 'products#home' 

iは、レールコンソールから順に作成したが、エラーはまだ..#ヘルプ 任意の詳細な回答をレンダリング..?

+1

ようifelse文を交換する必要がありますか? – Gabbar

+0

Rails.application.routes.draw行う GET '/製品' => '製品#ホーム' リソース:製品 リソース:ORDER_ITEMS リソース:カート、のみ:[:ショー] ルートの製品番号ホーム " 終了 – Wasi

答えて

1

問題は、current_orderメソッドではnilの値を渡して、メソッドOrder.find(nil)を見つけます。あなたは、あなたの `routes.rb`を共有することができますし、その時にあなたがエラーを取得しているラインこの

def current_order 
    if session[:order_id].nil? 
    Order.new 
    else 
    Order.find(session[:order_id]) 
    end 
end