通过percent_off订购产品

时间:2015-07-10 11:23:19

标签: ruby-on-rails ruby postgresql

我有两个型号Product和PricingHistory。

产品(id,name)has_many PricingHistory(id,percent_off,product_id)

我需要使用最新的PricingHistory加入Product并按百分比排序。

我写了这个:

Product.joins(:pricing_histories).group('products.id').order("max(pricing_histories.id) ASC").order('max(pricing_histories.percent_off) DESC')

但它没有按顺序返回数据。

例如: 产品:

ID    PRODUCT 
1       aa
2       bb
3       cc

PricingHistory

PRODUCT_ID PERCENT_OFF   CREATED_ON
   1          10         10/10/2015
   1          20         10/11/2015
   2          30         10/12/2015
   2          40         10/13/2015
   3          50         10/14/2015
   3          60         10/14/2015

我希望结果是:

 ID    PRODUCT  PRODUCT_ID PERCENT_OFF CREATED_ON
 1       aa     1          20         10/11/2015
 2       bb     2          40         10/13/2015
 3       cc     3          60         10/14/2015

1 个答案:

答案 0 :(得分:0)

您可以按如下方式实现:

PricingHistory.joins(:product).group(' products.id')。order(' pricing_histories.percent_off DESC')