2015-07-10 46 views
0

我有两个型号产品和定价历史。获得按百分比排序的产品

产品(ID,姓名)的has_many PricingHistory(ID,percent_off,PRODUCT_ID)

我需要加入产品与最新的PricingHistory和percent_off订购吧。

我写了这个:

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 
+2

所有产品都有一个唯一的ID,所以'products.id'分组不会任何有用的。也许你的意思是'pricing_histories.product_id'? –

+0

@MaxWilliams我也试过这个,但还没有得到预期的结果。 –

回答

0

你可以做到这一点,如下所示:

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