我正在建立一个点对点市场的购物车,并且对我遇到的当前错误感到困惑,如果有人能解释为什么会出现这种错误,我会很高兴。
这就是我在应用程序控制器中的内容:
def current_cart
if session[:cart_id]
@current_cart ||= Cart.find(session[:cart_id])
end
if session[:cart_id].nil?
@current_cart = Cart.create!
session[:cart_id] = @current_cart.id
end
@current_cart
end
def current_order
@item = Item.find(params[:id]) #here is where the problem lies, but I'm not sure why
Order.find_or_create_by(seller_id: @item.user_id )
end
这是我的OrderItems控制器:
def create
@cart = current_cart
@order = current_order
@order_item = @order.order_items.new(order_item_params)
@order.save
session[:order_id] = @order.id
end
def order_item_params
params.require(:order_item).permit(:quantity_requested, :item_id, :size_requested, :seller_id)
end
这是我收到的错误:
ActiveRecord :: RecordNotFound(无法找到没有ID的项目):
app / controllers / application_controller.rb:29:在current_order'
app/controllers/order_items_controller.rb:4:in
创建'
我很困惑bc订单保存了正确的卖家ID但订单项目没有创建。任何人都可以指出我的错误在哪里或为什么我得到这个错误?该应用程序似乎能够从数据库中找到项目ID以创建订单,而不是订单项目。很困惑。
谢谢!