У меня есть контроллер рельсов, чтобы добавить товар в корзину.Корзина является глобальной и устанавливается с помощью действия перед:
before_action :set_cart, only: [:create, :destroy]
def create
shopping_item = ShoppingItem.find(params[:cart_item][:product_id])
cart_item_selected = nil
cart_items = @cart.cart_items
cart_items.each do |cart_item|
if cart_item.shopping_item == shopping_item
cart_item_selected = cart_item
end
end
if not cart_item_selected.nil?
cart_item_selected.quantity += params[:cart_item][:quantity].to_i
cart_item_selected.save
else
new_item = CartItem.new(shopping_items_id: shopping_item.id,
quantity: params[:cart_item][:quantity])
new_item.cart = @cart
new_item.save
@cart.cart_items << new_item
end
if @cart.save
redirect_to '/checkout'
else
flash[:error] = 'There was a problem adding this item to your cart.'
redirect_to '/checkout'
end
Rescue:
end
Этот код работает локально, но при развертывании на эластичном бобовом стебле он выглядит, как когда я впервые пытаюсь добавить shopping_item в корзину.,
cart_items = @cart.cart_items
ничего не возвращает и приводит к сбою
if @cart.save
.
Я совершенно сбит с толку этим, возможно, я неправильно читаю журналы, но вижу ихприлагается.