我正试图解决一个巨大的问题。
上下文:电子商务主题。我有多个产品,客户可以将其添加到购物车中。每个产品可以具有多个DeliveryMod(示例:快递,低成本)。
我想每次找到产品的交付方式不同,并为每个产品创建一个LogisticalCart。结果将如下所示:
Product1和Product3具有相同的DeliveryMod,但不是Product2。
2个DeliveryMods组合,所以要创建2个LogisticalCart。 结果:2个LogisticalCart已创建。
我尝试了很多事情,但我不知道该怎么做。有什么解决办法吗?
重要提示:
Product&DeliveryMod关系是带有连接表的“ has_and_belongs_to_many”。
代码尝试(不起作用):
@products = current_cart.products
@products.each do |product|
@delivery_mods = Array.new
@delivery_mods << product.delivery_mods
if @delivery_mods.all? { |item| item.eql?item}
@logistical_cart = LogisticalCart.new
@logistical_cart.save
end
end
答案 0 :(得分:0)
Product1和Product3具有相同的DeliveryMods
这是否意味着Product1和Product3具有具有相同ID的delivery_mods?除了delivery_mod_ids之外,您还需要传递其他任何内容吗?请立即澄清所有详细信息:)
@products = current_cart.products
mod_ids_uniq = @products.map(&:delivery_mod_ids).uniq
mod_ids_uniq.each do |ids|
LogisticalCart.create(delivery_mod_ids: ids)
end