Я думаю, что моя ошибка глупо, но это заставляет меня застрять. Я следую Agile Web Development с Rails 4 и разрабатываю приложение Depot из него. Я получаюНеопределенный метод 'add_product' для объекта модели
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
Кроме того, я хочу знать, как может метод от другой модели непосредственно под отдельный контроллер? Объект тележки имеет значение, я отлаживался, чтобы убедиться, а также строка ошибки также содержит объект. Спасибо за помощь.