聲明:我是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