Вот небольшой пример контекста для моего вопроса ниже, чтобы помочь уточнить, что я спрашиваю ...
Схема
Users
- id
- name
Answers
- id
- user_id
- topic_id
- was_correct
Topics
- id
- name
Данные
Users
id | name
1 | Gabe
2 | John
Topics
id | name
1 | Math
2 | English
Answers
id | user_id | topic_id | was_correct
1 | 1 | 1 | 0
2 | 1 | 1 | 1
3 | 1 | 2 | 1
4 | 2 | 1 | 0
5 | 2 | 2 | 0
В результирующем наборе я хотел бы иметь таблицу с одной строкой на пользователя и двумя столбцами на тему, одна из которых отображает сумму правильных ответов.для темы, и тот, который показывает сумму неправильных ответов по этой теме.Для приведенных выше примеров этот набор результатов будет выглядеть следующим образом:
Мой желаемый результат
users.id | users.name | topic_1_correct_sum | topic_1_incorrect_sum | topic_2_correct_sum | topic_2_incorrect_sum
1 | Gabe | 1 | 1 | 1 | 0
2 | John | 0 | 1 | 0 | 1
Очевидно, что если бы в таблице Тем было больше тем, яМне бы хотелось, чтобы этот запрос включал новые правильные_суммы и неверные_суммы для каждой существующей темы, поэтому я ищу способ написать это без жесткого кодирования топики_идентификатора в функциях сумм моего предложения select.
Есть ли умный способ магии такого рода вещей с ARel?