Следующий код работает для Postgres (Heroku):
@messages = Message.select("DISTINCT
ON (messages.conversation_id)
*").where("messages.sender_id = (?) OR messages.recipient_id = (?)",
current_user.id, current_user.id)
Однако при попытке упорядочить результаты, добавив .order("messages.read_at DESC")
, я получаю следующую ошибку:
ActionView::Template::Error (PGError: ERROR: column id_list.alias_0 does not exist)
Глядя на сгенерированный SQL, я вижу, что псевдоним создается вокруг оператора ORDER BY, когда его не просят:
messages.recipient_id = (32))) AS id_list ORDER BY id_list.alias_0 DESC)
Мне не удалось найти обходной путь, за исключением использования "find_by_sql""для всего заявления - что требует значительных потерь в приложении.