Отдельные записи, упорядоченные по таблице соединений - PullRequest
0 голосов
/ 25 сентября 2018

У нас есть locations, что has_many images и images belongs_to a User.Я хочу получить все отдельные места, в которых пользователь сделал фотографию, в порядке created_at на изображениях.Я хотел бы попытаться выполнить это как один запрос, но я не смог найти способ, как это работает.

Я пытался изменить Location.joins(:images).where(images: { creator: user }).order('images.date_uploaded DESC').distinct, но они приводят к ошибкам, таким как: ActiveRecord::StatementInvalid: PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list LINE 1: ...ype" = $1 AND "images"."creator_id" = $2 ORDER BY images.dat... или неуникальные результаты.

Похоже, если я использую uniq, тогда он возвращает правильные результаты, но я считаю, что необходимо загружать записи из БД в массив для их uniq.

Обновление 1

Я пытался использовать SQL (в котором я не эксперт), используя следующиезапрос: SELECT DISTINCT(locations.id), images.date_uploaded, images.id FROM locations JOIN images on locations.id = images.location_id WHERE images.creator_type = 'User' AND images.creator_id = 105 ORDER BY images.date_uploaded, images.id

Но я все еще получаю дубликаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...