书中添加购物车一章,在 stroe 的 view 中有添加购物车的按钮,使用了 button_to 方法,将页面链接到在线商品的 create 动作中,在此方法中作了如下修改,意图是想让制定的页面显示 cart 中的商品列表,而不是原来有的 line_items 对象
现在的问题是,点击按钮后有如下现象: 1、第一次点击按钮后链接找不到 ID,提示 Couldn't find Product without an ID 并且这个链接并不是我想要的:http://localhost:3000/cart/4
2、将此页面刷新,可以链接到页面但不是'Line item was successfully created'通知的信息,感觉链接有错误 同样的链接地址,居然刷新后可以出来
问题代码如下,求大神指导
#代码1
#/views/store/index.html.erb
#添加的button_to按钮,并且传递了商品的ID
<%= button_to 'Add to Cart', line_items_path(:prouduct_id=>product.id)%>
#代码2----create动作片段
#app/controllers/line_items_controller.rb
def create
@cart = current_cart
product = Product.find(params[:product_id]) ########就是这里传递不到正确的id
@line_item = @cart.line_items.build(:product=>product)
#old_for_this_ruby_file
#@line_item = LineItem.new(params[:line_item])
respond_to do |format|
if @line_item.save
format.html { redirect_to @line_item.cart**, notice: 'Line item was successfully created.' } #这行代码本来应该使得链接进入cart的控制器中,但进不了
format.json { render json: @line_item, status: :created, location: @line_item }
else
format.html { render action: "new" }
format.json { render json: @line_item.errors, status: :unprocessable_entity }
end
end
end