Пример
class User
has_many :tickets
end
Я хочу создать ассоциацию, которая содержит логику подсчета билетов пользователя и использовать ее в include (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 with group by... Как реализовать это с помощью рельсов?
Обновление
- Я не могу изменить структуру таблицы
- Я хочу, чтобы AR генерировал 1 запрос для сбора пользователей с включенными
Update2
Я знаю SQL, я знаю, как выбрать это с помощью объединений, но мой вопрос теперь похож на "Как получить данные". Мой вопрос о строительной ассоциации, которую я могу использовать в составе. Благодаря
Update3 Я попытался создать ассоциацию, созданную как user has_one ticket_count, но
- выглядит как has_one не поддерживает расширения ассоциации
- has_one не поддерживает: опция group
- has_one не поддерживает finder_sql