0

我正在做一本名为 Agile Web Development 的书中的练习。使命是:

用户可以在踢出商品图片时将产品添加到购物车。所以我将图像标签包装成一个锚标签。就像<%= link_to image_tag(product.image_url), line_items_path(:product_id => product), html_options = {:method => :post} %> 我踢图像似乎很好,但它不会将任何东西添加到购物车中。我查看了本书网站上的讨论,其中一些解决方案与我的解决方案相似。但它们也不起作用。

当我踢图像时,代码将运行:

# POST /line_items
# POST /line_items.json
def create
  # for exercise only
  session[:couter] = nil

  @cart = current_cart
  product = Product.find(params[:product_id])
  @line_item = @cart.line_items.build(:product=>product)

  respond_to do |format|
    if @line_item.save
      format.html { redirect_to @line_item.cart, notice: 'Line item was successfully created.' }
      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
4

3 回答 3

1

我想你想要button_to,不是link_to。您不能POST从锚链接发送请求。

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

于 2012-08-29T20:43:14.757 回答
1

您快到了。你想要这样的东西:

<%= link_to image_tag(product.image_url), line_items_path(:product_id => product), :method => :post %>
于 2012-08-29T20:55:17.030 回答
0

我弄清楚发生了什么事。这是书的问题,而不是轨道的问题。

原本的<%= javascript_tag 'application %>'

这本书教我把它改成<%= javascript_include_tag :default %>

所以我无法导入 javascript 库 :(

于 2012-09-01T03:30:19.027 回答