Comme l'erreur indique for SELECT DISTINCT, ORDER BY expressions must appear in select list
.Par conséquent, vous devez sélectionner explicitement la clause par laquelle vous commandez.
Voici un exemple, il est similaire à votre cas mais généralisez un peu.
Article.select('articles.*, RANDOM()')
.joins(:users)
.where(:column => 'whatever')
.order('Random()')
.uniq
.limit(15)
Donc, incluez explicitement votre ORDER BY
clause (dans ce cas RANDOM()
) en utilisant .select()
. Comme indiqué ci-dessus, pour que votre requête renvoie les attributs Article, vous devez également les sélectionner explicitement.
J'espère que ça aide; bonne chance