我不能在方法之间传递值。在我的OrderController中,我想将@order_id
从创建方法传递给 order_show 方法。当我在@order_id
内检查order_show
时,其值变为零!
不确定如何修复它。
订单控制器
def create_order
@neworder = Order.new(order_params)
if @neworder.save
@order_id=@neworder.orderid
#raise @order_id.inspect <---------shows orderid
redirect_to order_show_path
else
render "new"
end
end
def order_show
raise @order_id.inspect <--------orderid is nil!
@orderdlt=Order.find(@order_id)
end
答案 0 :(得分:0)
您需要通过传递订单的ID来更新您的create_order
方法以将请求重定向到order_show_path。因此,您可以从url访问订单ID作为参数。
所以它应该是这样的;
def create_order
@neworder = Order.new(order_params)
if @neworder.save
@order_id=@neworder.orderid
#raise @order_id.inspect <---------shows orderid
redirect_to order_show_path(@order_id)
else
render "new"
end
end
def order_show
@order_id = params[:id]
raise @order_id.inspect <--------orderid is nil!
@orderdlt=Order.find(@order_id)
end
您也需要设置路线。