我有这个型号:
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执行SELECT DISTINCT of company_stores.*
,但在ORDER BY
中也会显示customers.name
我应该放弃协会的命令吗?
答案 0 :(得分:7)
正如错误消息所示,PG要求订单表达式包含在select中,因此select('stores.*, company_stores.id').order('company_stores.id ASC').uniq
或类似的应该可以解决问题。