Я пытаюсь создать сайт стиля электронной коммерции и пытаюсь сделать корзину/корзину с нуля. Поскольку пользователи смогут добавлять продукты в виртуальную корзину без входа в систему, я делаю этот процесс через файл cookie, хранящийся в браузере. Куки использует следующий формат:Каждое значение в массиве * Другое значение в другом массиве
Product.ID|Quantity/Product2.ID|Quantity
Я использую код, чтобы разделить массив и удалить «/ и |» и я остаюсь с двумя массивами. Один из них содержит все идентификаторы продукта и другие, содержащие количества.
Мне нужен способ сопоставить каждое значение в массиве с правильным значением в другом массиве. Например:
array1 = ["1", "4", "7"] # Products ID'S
array2 = ["1, "2, "1"] # Quantities
мне нужно, чтобы быть в состоянии сделать продукт (1) .price Х 1, продукта (4) .price X 2 продукта (7) .price Х (1)
At the moment I do @product = Product.find_all_by_id(array1) which does return my products. I then need to do each products price X the quantity.
Есть ли лучший/чистый способ сделать это или может кто-нибудь помочь? Я НЕ хочу использовать драгоценный камень/плагин для готовой корзины/корзины.
Большого спасибо
Lee
Это действительно хорошо, за исключением сказать, корзина = «3 | 1/4 | 1/3 | 2», поэтому есть три записи. Если я запустил команду convert into, она возвращает только {"3" => "2", "4" => "1"} - Две записи в обратном порядке? Есть предположения. Еще раз спасибо! –
Это потому, что у вас один и тот же идентификатор продукта дважды. Хэш не может иметь дубликаты ключей. Это возможный сценарий в вашем случае? – usha
Я вижу! Нет. Мне нужно добавить код, который не позволяет дублировать идентификаторы продуктов. Вместо этого он просто обновит количество. Спасибо! Что произойдет, если количество дублируется? Скажем, у нас есть «5 | 2/4 | 1/3 | 2» - это создаст ошибку? –