ActiveRecord Association выбирает счетчики для включенных записей

Пример

class User  
  has_many :tickets 
end

Я хочу создать ассоциацию, которая содержит логику подсчета билетов пользователя и использовать ее во включениях (user has_one ticket_count)

Users.includes(:tickets_count)

Я пробовал

  has_one :tickets_count, :select => "COUNT(*) as tickets_count,tickets.user_id " ,:class_name => 'Ticket', :group => "tickets.user_id", :readonly => true  

User.includes(:tickets_count)

 ArgumentError: Unknown key: group

В в этом случае запрос ассоциации в include должен использовать count с group by ... Как я могу реализовать это с помощью рельсов?

Обновление

  • Я не могу изменить структуру таблицы
  • Я хочу, чтобы AR сгенерировал 1 запрос для сбора пользователей с включениями

Update2

Я знаю SQL и знаю как выбрать это с объединениями, но теперь мой вопрос похож на "Как получить данные". У меня вопрос о строительной ассоциации, в которую я могу входить. Спасибо

Update3 Я попытался создать ассоциацию, созданную как пользователь has_one ticket_count, но

  1. похоже, что has_one не поддерживает расширения ассоциации
  2. has_one не поддерживает: параметр группы
  3. has_one не поддерживает finder_sql
15
задан Fivell 22 November 2015 в 22:02
поделиться