我认为我的错误有点傻,但它让我陷入困境。我正在使用Rails 4进行Agile Web开发,并从中开发app Depot。我得到了
undefined method `add_product' for #<Cart:0x007f2ee4cfb8f8>
错误。我的代码如下,
class LineItemsController < ApplicationController
def create
find_cart
product = Product.find(params[:product_id])
byebug
@line_item = @cart.add_product(product.id) // line with error
@line_item.product = product
respond_to do |format|
if @line_item.save
format.html {redirect_to @line_item.cart,
notice: 'Line Item was succesfully 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 Entry"}
end
end
end
end
Cart.rb
class Cart < ActiveRecord::Base
has_many :line_items, dependent: :destroy
def add_products(product_id)
current_item = line_items.find_by_product_id(product_id)
if current_item
current_item.qunatity += 1
else
current_item = line_items.build(product_id: product_id)
end
current_item
end
end
另外,我想知道,如何将不同模型的方法直接调用到单独的控制器中? 对象购物车有价值,我已经调试以确保,以及错误行也有对象存在。 谢谢你的帮助。
答案 0 :(得分:0)
我发现了这个错误,这是我在Cart.rb中犯的错字。我已经将方法命名为add_product&#39; s&#39;并在控制器中调用add_product。