Como o erro indica
for SELECT DISTINCT, ORDER BY expressions must appear in select list
. Portanto, você deve selecionar explicitamente a cláusula pela qual está fazendo o pedido. Aqui está um exemplo, é semelhante ao seu caso, mas generalize um pouco.
Article.select('articles.*, RANDOM()')
.joins(:users)
.where(:column => 'whatever')
.order('Random()')
.uniq
.limit(15)
Portanto, inclua explicitamente seu
ORDER BY
cláusula (neste caso RANDOM()
) usando .select()
. Conforme mostrado acima, para que sua consulta retorne os atributos do artigo, você também deve selecioná-los explicitamente. Eu espero que isso ajude; boa sorte