2014-08-30 67 views
2

我试图输出一个由模型上的特定类方法排序的JSON响应。我知道我可以通过实际的属性进行排序,但我如何通过发送一个块来排序。即:通过类方法的输出排序rails

class Baker 
    has_many :meals 

    def this_week_cookies 
    self.meals.this_week.sum(:cookies_baked) 
    end 
end 

我想打电话给像

Baker.order {|面包| baker.this_week_cookies}

输出在视图中领先,但我知道这是行不通的

回答

2

order方法写一个SQL查询,以便它不能使用像这样的自定义方法。你需要使用红宝石来做你想做的。

Baker.all.sort_by(&:this_week_cookies)