Rails 关于《敏捷之道 4》中购物车的问题求助

qwertu22 · 2014年03月19日 · 最后由 cisolarix 回复于 2014年03月20日 · 2105 次阅读

书中添加购物车一章,在 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

prouduct_id 拼写错误,应为 product_id redirect_to @line_item.cart** 这两个星号是啥意思?

#1 楼 @cisolarix 确实是写错了,谢谢~,问题解决了, 那两个星号是排版的时候加上去的,忘了删除

#1 楼 @cisolarix 自己的程序就是眼睛不够尖,:-)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号