Каким способом Rails 3 упорядочивает результаты .group () в Activerecord (здесь "created_at")?
@messages = Message.group(:foo)
приводит только к отображению самого старого сообщения. Мне нужна последняя информация, чтобы показать ее.
Я пробовал
@messages = Message.group(:foo).having("created_at = MAX(created_at)")
безуспешно. Любые подсказки приветствуются!
Чтобы уточнить: я хочу, чтобы группа упорядочивалась внутри самой себя, а не в обычном messages.order ("..."). Если не будет простого синтаксиса Activerecord, я буду счастлив также с необработанным SQL
Обновление: попробовав способ SQL, это должно было сработать:
@messages = Message.find_by_sql("
SELECT messages.*
FROM messages
GROUP BY messages.foo
HAVING messages.created_at = MAX(messages.created_at)
ORDER BY messages.created_at DESC")
Но это извлекает только отдельные записи (те, которые не сгруппированы). Предположительно сгруппированные не указываются. Не знаю почему, все записи имеют значения: created_at и: foo