Вернуть уникального пользователя не работает с group_by - PullRequest
0 голосов
/ 03 августа 2020

Я использую ajax datatable gem для отображения имени клиента и общего количества баллов в магазине. таблица магазинов-клиентов выглядит так.

store_id
client_id
total_points

Но поскольку это будет отчет, я не хочу показывать одного и того же клиента дважды, даже в разные магазины. Я пробую следующее:

StoreClient.joins(:client).group(:client_id)

Но я получаю эту ошибку: column "store_clients.id" must appear in the GROUP BY clause or be used in an aggregate function

Если я добавлю идентификатор store_clients, результат будет не таким, как ожидалось.

ожидается:

client_id | store_id | total_points
   1           1          10
   1           2          20
   2           1          5
-----------------------------------
client_id | store_id | total_points
   1           1          10
   2           1          5

1 Ответ

1 голос
/ 04 августа 2020

Предположим, что исходный результат - это хранилище массива в переменной экземпляра @result, вы можете получить уникальный результат, например:

@result.uniq {|o| o.client_id }
...