刚刚接触 rails,按着《应用 rails 进行敏捷 web 开发》上的 depot 的案例走下来遇到了一个问题。在创建智能的购物车这一章节中报错 NoMethodError in LineItemsController#create undefined method `+' for nil:NilClass 在 cart 的 model 中我做了稍微的修改
#在购物车中添加商品
def add_product(product)
#在line_item中根据product.id查找到对应的product
current_item = line_items.find_by_product_id(product.id)
if current_item
current_item.quantity += 1
else
current_item = line_items.build
current_item.product = product
end
current_item
end
line_items_controller 中的 create 方法
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product)
respond_to do |format|
if @line_item.save
format.html {redirect_to(@line_item.cart,
:notice => 'Line item was successfully created') }
format.xml {render :xml => @line_item,
:status => :created, :location => @line_item}
else
format.html { render :action => 'new'}
format.xml {render :xml =>@line_item.errors,
:status => :unprocessable_entity}
end
end
end
因为刚刚接触 rails,不太了解,希望大神指导