Мне нужно рассчитать общий объем продаж топ-10 вариантов и вернуть хэш {option_id, total_sales}.но общий объем продаж является расчетным атрибутом.
Мои модели, order.rb
has_many :line_items
line_item.rb
has_one :variant
option.rb
belongs_to :root_variant # ( a self_join assosciation )
Мой запрос выглядит следующим образом, но я не могу заставить его вернуть рассчитанные продажи, поскольку он не является частью модели
Spree::Variant.joins(line_items: :order).where(spree_orders: {completed_at: params[:start_date]..params[:end_date]})
.select('spree_variants.*, SUM(spree_line_items.quantity) as sales')
.group("spree_variants.root_variant_id, spree_variants.id")
.order('sales DESC').limit(10)