使用狂欢节和洗劫,如何可能返回狂潮::变体包含在Spree::订单已经完成了一个特定的日期?ransack文档给出了一些关于搜索关联的建议,但似乎不够深入。
Spree::Order
  has_many :line_items
Spree::LineItem
  belongs_to :line_item
  belongs_to :variant 
Spree::Variant
  has_many: line_items已完成的订单可在以下位置进行搜索:
  o=Spree::Order.complete.ransack(completed_at_gt: '2015-05-01')但是,如何在这些订单中找到狂欢节::LineItems,并在这些订单中返回Spree::Variants的SKU尚不清楚。
我试图使用ransack,因为这将在狂欢报告中使用。
发布于 2015-10-13 17:26:14
你根本不需要在这个地区使用洗劫。ActiveRecord将允许您做您需要的事情:
Spree::Order.complete.where(
  Spree::Order.arel_table[:completed_at].gteq(
    Date.new(2015, 10, 1)
  )
).joins(
  line_items: :variant
).select(:sku).distinct.pluck(:sku)如果必须使用ransack,可以使用ActiveRecord关系,使用.result并应用联接等等。
Spree::Order.complete.ransack(
  completed_at_gt: '2015-05-01'
).result.joins(
  line_items: :variant
).select(:sku).distinct.pluck(:sku)由于您没有.pluck,所以您正在运行一个非常老版本的狂欢节,即预Rails 4。
Spree::Order.complete.ransack(
  completed_at_gt: '2015-05-01'
).result.joins(
  line_items: :variant
).select(:sku).map(&:sku).uniqhttps://stackoverflow.com/questions/33102365
复制相似问题