我不明白“line_items_controller.rb”中的第 5 行:我注意到 Rails 3.1 的代码没有这样的行,而在 Rails 3.2 的代码中有这样的行。从 Java 世界来看,很难说这里使用了什么样的魔法 ruby :( 我一直在理解 Rails 文档。
例如 button_to 有签名button_to(name, options = {}, html_options = {})
但是在代码中,您可以添加参数,例如
<%= button_to 'Empty cart', @cart, :method => :delete, :confirm => 'Are you sure?' %>
我想@cart 不应该在那里......
def create
@cart = current_cart #this is a function method
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
@line_item.product = product
respond_to do |format|
if @line_item.save
format.html { redirect_to @line_item.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
此处项目的完整源代码: https ://github.com/ilovejs/depot_i/blob/master/app/controllers/line_items_controller.rb