我已经建立了一个购物车,效果很好(感谢this tutorial)。现在我试图根据我的需要修改它。我想根据seller_id属性创建订单,以便购物者可以在购物车中看到来自不同卖家的多个订单,类似于eBay或Etsy:
这是我的order_items_controller:
class OrderItemsController < ApplicationController
def create
@order = current_order
@order_item = @order.order_items.new(order_item_params)
@order.seller_id = @order_item.seller_id
@order.save
session[:order_id] = @order.id
end
这是我的application_controller:
def current_order
if !session[:order_id].nil?
Order.find(session[:order_id])
else
Order.new
end
我认为将current_order的定义更改为:
def current_order
Order.find_or_create_by(seller_id: :seller_id)
end
会解决问题,但会产生重复的订单。我尝试过其他几种变体,都会产生错误。有人可以帮我吗?即使只是如何以不同的方式思考这个问题?