7

我有这个模型:

class User < ActiveRecord::Base
  has_many :customers, -> { order('customers.name ASC') }
  has_many :stores, -> { order('company_stores.id ASC').uniq }, through: :customers
end

当我尝试

user.stores

我有这个错误:

PG::InvalidColumnReference: ERROR:  for SELECT DISTINCT, ORDER BY expressions must appear in select list

因为 Rails 执行 a SELECT DISTINCT of company_stores.*,但在 中ORDER BY也出现customers.name

我应该放弃协会的秩序吗?

4

1 回答 1

7

正如错误消息所暗示的那样,PG 要求在选择中包含顺序表达式,因此select('stores.*, company_stores.id').order('company_stores.id ASC').uniq或类似的方法应该可以解决问题。

于 2013-11-06T09:05:21.290 回答