I cannot pass value between methods. In my OrderController, I want to pass the @order_id
from create method to order_show method. When I check @order_id
inside order_show
, its value become nil!
Not sure how to fix it.
Order controller
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
You need to update your create_order
method to redirect request to order_show_path by passing the order's id. So you can access order id from url as parameter.
So it should be something like this;
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
You need to setup your routes too.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.