Есть такой запрос:
posts_and_images = current_user.posts_and_images.select('DISTINCT ON (post_id) post_id, id, user_id, image_id, position').order(:post_id, position: :desc)
Нужно отсортировать полученные данные только по position, но на деле сейчас полученные данные сортируются по post_id, а сортировка по position игнорируется.
Притом если схитрить таким образом:
.order(position: :desc, post_id: :desc)
То ошибка:
PG::InvalidColumnReference: ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions LINE 1
Точно такая же ошибка, если вообще не указывать "post_id" в ORDER. "post_id" должно всегда находиться в ORDER и всегда должно быть первым, так как используется DISTINCT.
Как исправить?