由has_many命令的Rails:通过属性sum

时间:2018-04-10 16:04:25

标签: sql ruby-on-rails postgresql active-record-query sql-order-by

我需要通过一系列遥测来订购分类'值。

这些是我的模特:

class Assortment < ApplicationRecord
  has_many :sensors
  has_many :telemetries, through: :sensors
end

class Sensor < ApplicationRecord
  belongs_to :assortment, optional: true
  has_many :telemetries, dependent: :destroy
end

class Telemetry < ApplicationRecord
  belongs_to :sensor
end

这就是我可以通过遥测的总和订购传感器的方法。值:

Sensor.joins(:telemetries).group("sensors.id", "telemetries.sensor_id").order("sum(telemetries.value) desc")

但我如何为分类做同样的事情呢? (我使用PostgreSQL)

1 个答案:

答案 0 :(得分:0)

好吧,结果很简单:

Assortment.joins(:telemetries).group("assortments.id", "telemetries.sensor_id").order("sum(telemetries.value) desc")