未定义的方法' add_product'对于模型对象

时间:2016-04-23 19:26:19

标签: methods undefined ruby-on-rails-4.2

enter image description here我认为我的错误有点傻,但它让我陷入困境。我正在使用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

另外,我想知道,如何将不同模型的方法直接调用到单独的控制器中? 对象购物车有价值,我已经调试以确保,以及错误行也有对象存在。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我发现了这个错误,这是我在Cart.rb中犯的错字。我已经将方法命名为add_product&#39; s&#39;并在控制器中调用add_product。