kana-desu
@kana-desu
Golang, Clojure, Elixir, Ruby

Как добавить в первую таблицу колонку из второй таблицы c помощью индекса из первой?

Имею 3 таблицы.
titles {id, name}
users {id}
votes {user_id, title_id}


В данный момент я могу сделать так Vote.group(:title_id).count, чтобы получить количество голосов (votes) для каждого тайтла (titles). Но полученный результат вот такого вида
{33=>2, 34=>1, 36=>1, 38=>3, 39=>2, 40=>4, 41=>3, 42=>2, 43=>3, 44=>3, 45=>1, 46=>4, 47=>5, 48=>4, 49=>3, 50=>3, 52=>2, 62=>1}
, а мне нужно вместо id подставить имя (titles.name).

Данный код
Vote.includes(:title).group("votes.title_id").count
работает точно так же, как и вариант выше, но вот этот уже работать не хочет Vote.includes(:title).group("titles.name").count. Использование joins вместо includes не помогает.
Как же мне получить на выходе {"name" => count}?
  • Вопрос задан
  • 508 просмотров
Решения вопроса 1
@vsuhachev
Ваш код у меня работает как надо:
Vote.joins(:title).group("titles.id, titles.name").count
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы