无法找到没有ID的订单

时间:2014-07-11 21:08:50

标签: ruby-on-rails ruby-on-rails-4

我是一名对后端缺乏了解的铁路新秀,并且很难学习它。我试图让产品,订单,购物车和订单项模型和控制器同步,以简化"简单的"电子商务应用。遇到以下问题,这是我的导师"导师"没有答案(或厌倦了我的问题)。

LineItemsController中的ActiveRecord :: RecordNotFound #create

无法找到没有ID的订单

提取的来源(第7行):

@cart = current_cart
@product = Product.find(params[:product_id])
@order = Order.find(session[:order_id])

line_item = @order.line_items.build(line_item_attributes)

我不确定哪个其他代码足以插入此处。请让我知道我还能提供什么。

我注意到这里的一些绅士喜欢像我这样的年轻愚蠢的新手抢购;如果那就是你,请等一下。

谢谢。

2 个答案:

答案 0 :(得分:1)

通过Michael Hartl's excellent Rails tutorial会使你受益匪浅,这会让你在通过它时看起来像这样的问题变得微不足道。

但最重要的是:session[:order_id]的值为nil - 在调用LineItems的创建操作之前未定义它。因此,您的@order变量未被行@order = Order.find(session[:order_id])填充。但相信我,你会遇到比构建电子商务应用程序更复杂的问题,所以你真的应该给这个教程一个机会!

答案 1 :(得分:0)

我认为您需要使用params[:order_id]代替session[:order_id]。不是:order_id是从表单传入的吗?