声明:我是Rails的新手。如何在Rails中重构此数据库查询
我试图做到这一点是长型:
user = Spree::User.find(2)
cart = Spree::Order.where(state: "cart", user_id: user.id)
line_item = Spree::LineItem.where(order_id: cart.last.id).map { |order| order.variant_id}
variant = Spree::Variant.find(line_item).map { |order| order.product_id }
Spree::Product.find(variant).map { |product| product.name }
会发生什么事是它进入数据库,找到用户,获取,他们的状态在车的订单。然后去找到它的订单项。通过查找“变体”数据找出包含哪些产品。然后转到产品页面,告诉我用户购物车中的所有产品。
这看起来很难看,也很garjumbled。你不会碰巧知道一种重构它的方式,而不是那么多的查询?
关键字“有很多”随处可见。我想我会注意到这一点...我应该提到Spree是一款开源的电子商务框架,适用于Ruby on Rails。 – BenMorganIO
您正在使用哪种版本的Spree?我找不到Spree :: User的任何文档和/或代码... – raviolicode
可能是因为我现在正在使用自定义构建。 – BenMorganIO