找不到 'id'= 的订单
Couldn't find Order with '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'
我通过 rails 控制台创建了一个订单,但仍然呈现错误..#help
任何详细的答案..?
问题与 current_order
方法有关,您正在将 nil
值传递给查找方法 Order.find(nil)
。您需要像这样交换 if
和 else
语句
def current_order
if session[:order_id].nil?
Order.new
else
Order.find(session[:order_id])
end
end
我确实关闭了我的浏览器但仍在渲染,本地主机服务器重新启动但错误仍然存在。
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'
我通过 rails 控制台创建了一个订单,但仍然呈现错误..#help 任何详细的答案..?
问题与 current_order
方法有关,您正在将 nil
值传递给查找方法 Order.find(nil)
。您需要像这样交换 if
和 else
语句
def current_order
if session[:order_id].nil?
Order.new
else
Order.find(session[:order_id])
end
end