У меня есть модель Event
, у нее есть атрибут ticket_id
. Я группирую свои events
по этому атрибуту так:
Event.group(:ticket_id).having('count(events.ticket_id) > 1')
и это отлично работающий запрос, но я не понимаю, как работать с результатом такого запроса напрямую.
Я понимаю, что, например, я могу вызвать метод count
для него и получить хэш с ticket_ids и количеством соответствующих событий. Но мне нужно получить структуру с ticket_ids в качестве ключей и массивами событий в качестве значений, подобных этому:
{ 1 => [#<Event:1>, #<Event:2>], 2 => [#<Event:3>, #<Event:4>], ... }
Я могу добиться такого результата, используя обычный ruby group_by
, но, учитывая тот факт, что у меня несколько миллионов событий, это кажется не лучшим решением. Можно ли как-то добиться результата, используя ActiveRecord или, возможно, простой SQL?
P.S. Я использую PostgreSQL