'id'=

2017-12-23 12 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' 

내가 레일 콘솔을 통해 주문을 만들었지 만 오류는 여전히 .. 도움 어떤 구체적인 대답을 렌더링 ..?

+1

처럼 ifelse 문을 교체해야합니까? 제품 자원 : order_items 자원 : 카트, 전용 : [: 쇼] 루트 '제품 # 홈' 끝 – Gabbar

+0

Rails.application.routes.draw은 의 get '/ 제품'=> '제품 # 집' 자원을 – 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