我想在代码下方进行优化。因为这使页面很慢。有什么想法吗?我试图删除迭代代码,但我感到精神瘫痪。
@cart_items_count_with_purchase = cart_items.select do |item|
item.brand_user.sub_orders.where('created_at > ? AND product_id = ?', item.added_to_cart_at, item.product_id).
where(order_status: OrderStatus.paid).exists?
end.count
这是我解决问题的方法。
cart_items.joins(brand_users: :sub_orders).where(sub_orders: {order_status: OrderStatus.paid}).where('sub_orders.product_id IN (?)', cart_items.pluck(:product_id))
答案 0 :(得分:0)
这是一个缩小行
product_ids = cart_items.pluck(:product_id)
cart_items.joins(brand_users: :sub_orders)
.where(sub_orders: {order_status: OrderStatus.paid, product_id: product_ids})