Back

Rails中的sum, count,joins查询

发布时间: 2016-12-17 13:33:00

挺好用。之前用的很少。 

现在捡起来了,发现跟原生的SQL基本一个用法。都差不多。

照着例子做就可以了。 能大幅节省时间。

一个例子:

之前:

 41     #amount = 0
 42     #self.sales_checks.each do |sales_check|
 43     #  #sales_check.wins.each do |win|
 44     #  #  begin
 45     #  #    if win.award.present? &&
 46     #  #      !win.raw_payment_result.include?('频繁') &&
 47     #  #      !win.raw_payment_result.include?('限制') &&
 48 
 49     #  #      amount += win.award.bonus
 50     #  #    end
 51     #  #  rescue Exception => e
 52     #  #    Rails.logger.error e
 53     #  #    Rails.logger.error e.backtrace.join("\r\n")
 54     #  #  end
 55     #  #end
 56     #end
 57     #amount

之后:

 37     result = Fan.joins(:sales_checks).where('fans.id = ?', self.id).sum('sales_checks.award_amount')
 38     return 0 if result.blank?
 39     return result / 100

Back