获取现有查询Rails中另一个表值的计数

时间:2016-12-20 18:46:11

标签: ruby-on-rails postgresql pg

目前我这样做是为了从我的表中获取数据

cameras = Camera.joins("left JOIN users on cameras.owner_id = users.id")
                .joins("left JOIN vendor_models vm on cameras.model_id = vm.id")
                .joins("left JOIN vendors v on vm.vendor_id = v.id")
                .where(condition).order(sorting(col_for_order, order_for)).decorate

这会生成

这样的查询
SELECT "cameras".* FROM "cameras" left JOIN users on cameras.owner_id = users.id left JOIN vendor_models vm on cameras.model_id = vm.id left JOIN vendors v on vm.vendor_id = v.id

我还有另一张表格camera_shares,其中我与相机的表格有关系,因为camera_id表格中也存在camera_shares,每个camera_shares有一个camera_id告诉我们共享是针对哪个相机,我想计算camera_shares的数量,例如,如果有一个ID为12的相机并且有还有20 camera_shares camera_id = 12然后我想计算它的总数。我想在Rails查询中这样做,如上所示?怎么可能呢?

1 个答案:

答案 0 :(得分:-1)

似乎相当直截了当。假设您要查找@camera的camera_shares数:

CameraShare.where(camera: @camera).count