Poiché l'errore indica for SELECT DISTINCT, ORDER BY expressions must appear in select list
.Pertanto, devi selezionare esplicitamente per la clausola con cui stai ordinando.
Ecco un esempio, è simile al tuo caso ma generalizza un po'.
Article.select('articles.*, RANDOM()')
.joins(:users)
.where(:column => 'whatever')
.order('Random()')
.uniq
.limit(15)
Quindi, includi esplicitamente il tuo ORDER BY
clausola (in questo caso RANDOM()
) utilizzando .select()
. Come mostrato sopra, affinché la tua query restituisca gli attributi dell'articolo, devi anche selezionarli esplicitamente.
Spero che aiuti; buona fortuna