首页 > 解决方案 > Rails:按孙子的属性排序父母

问题描述

class User
  has_many :calendars
  has_many :cars, through: :calendars
end

class Calendar
  has_many :cars
end

class Car
  # attribute `issued_at`
end

我需要通过issued_at他的汽车订购用户。所以通过大孩子的属性对父母进行排序issued_at

到目前为止:

@q = User.active.joins(:cars).order('cars.issued_at').group('users.id')

但我越来越

column "cars.issued_at" must appear in the GROUP BY clause or be used in an aggregate function

标签: ruby-on-railsrubypostgresqlactiverecord

解决方案


使用distinct而不是group摆脱重复:

@q = User.active.joins(:cars).order('cars.issued_at').distinct

推荐阅读