试图为使用红宝石销售自行车的应用程序制作一个简单的购物车。这个错误使我陷入困境,所以任何帮助都将非常感激!
当我想要向购物车添加内容时,会出现错误。它与我的lineitems控制器或我的购物车模型有关。
对于我的订单项:
@lineitem = @cart.add_bike(bike.id)
对于我的模特:
def add_bike(bike_id)
current_item = lineitems.find_by_bike_id(bike_id)
if current_item
current_item.quantity +=1
else
current_item = lineitems.new(bike_id: bike_id)
current_item.quantity = 1
end
current_item #this is returning the current_item object
end
我的错误是undefined method `add_bike' for nil:NilClass
def current_cart
@cart = Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
@cart = Cart.create
session[:cart_id] = @cart.id
end
end
答案 0 :(得分:1)
@cart
未在您的控制器中初始化,并且等于nil
。
您的@cart
不是购物车,add_bike
未定义为非购物车。
您应该向我们展示@cart.add_bike(bike.id)
更新:
在使用current_cart
@cart.add_bike(bike.id)
您的current_cart
定义@cart
,但在创建新的@cart.id
时会返回@cart
。