Ruby 创建订单后需要将Order.id复制到多个行\u items.Order\u id
所以,这就是它的工作原理Ruby 创建订单后需要将Order.id复制到多个行\u items.Order\u id,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,所以,这就是它的工作原理 客户端打开浏览器,在seesion和DB中创建购物车,然后开始浏览产品。(创建购物车) 他将产品添加到购物车(创建行项目) 他按下结帐按钮,订单被创建(创建订单) 如果订单创建成功(通过paypal网关检查),则浏览器会将用户重定向到产品页面,购物车将被销毁。(代码会说得更好) 订单\u控制器 def create @order = current_cart.build_order(params[:order]) @order.ip_address =
def create
@order = current_cart.build_order(params[:order])
@order.ip_address = request.remote_ip
if @order.save
if @order.purchase
Cart.destroy(session[:cart_id])
session[:cart_id] = nil
else
render :action => "failure"
end
respond_to do |format|
format.html { redirect_to products_path, :notice =>
'Thank you for your order.' }
format.json { render :json => @order }
end
else
render :action => 'new'
end
end
line_项目保留在数据库中,因为我想在管理面板中显示订单以及此订单的line_项目,如果我可以将Order.id保存到line_items.Order_id中,我会这样做
现在,当我填写新订单的表单并按下“发送”按钮时,所有line\u items.order\u id字段的值都为空,但我需要在其中包含order.id
这是订单表格屏幕截图
以及行项目
正如您现在所看到的,第_行项目中的order_id等于order(40)中的id,但这是因为出于测试目的,我手动将order_id插入了第_行项目。通常我得到的是NULL值,而不是order\u id
我只是不知道如何在订单保存后将此order.id插入到第_行项目中
我可以在这里解释我的想法,但在我看来,我不知道如何在rails中编写代码:
因此,创建订单后,应用程序必须查找与保存的订单具有相同购物车id的商品(因为两者在表中都有购物车id字段),以及所有与订单具有相同购物车id的商品,更改订单id=order.id。这就是我的看法。如果有别的办法,请告诉我。多谢各位
p、 如果有任何代码错误,我会根据需要进行更新。它看起来像是当前的购物车。创建订单时,生成订单不会将购物车的行项目分配给订单。您可能只需在带有
.build\u order
的行之后添加@order.line\u items=current\u cart.line\u items
。然后,保存订单时,行项目将与其关联。Yes man!!!许多吻!!:)别误会我。。我很高兴我成功了。非常感谢。