Ponieważ błąd stanowi for SELECT DISTINCT, ORDER BY expressions must appear in select list
.Dlatego musisz wyraźnie wybrać klauzulę, według której zamawiasz.
Oto przykład, jest podobny do twojego przypadku, ale trochę uogólnij.
Article.select('articles.*, RANDOM()')
.joins(:users)
.where(:column => 'whatever')
.order('Random()')
.uniq
.limit(15)
Więc wyraźnie dołącz swoje ORDER BY
klauzula (w tym przypadku RANDOM()
) przy użyciu .select()
. Jak pokazano powyżej, aby zapytanie zwróciło atrybuty artykułu, musisz je również wyraźnie zaznaczyć.
Mam nadzieję, że to pomoże; powodzenia