#ruby-on-rails #activerecord
#ruby-on-rails #activerecord
Вопрос:
Событие имеет столбец popularity
и множество ключевых слов. Ключевое слово имеет категорию и имя. Я пытаюсь упорядочить события по их популярности, но затем возвращаю только самое популярное событие из каждого ключевого слова с категорией «таксономия».
Вот мой запрос:
Event
.order(:popularity)
.joins(:keywords)
.where(keywords: {category: "taxonomy"})
.group("keywords.name")
Но я получаю ошибку ниже:
PG::GroupingError: ОШИБКА: столбец «events.id » должен отображаться в предложении GROUP BY или использоваться в агрегатной функции
Где я ошибаюсь?
Комментарии:
1. Версия Postgres? некоторые предлагают использовать 9.1
Ответ №1:
Event
.order(:popularity)
.joins(:keywords)
.group('events.id') # <======
.where(keywords: { category: 'taxonomy' })
.group('keywords.name')