Ошибка генерирования ChartKick "PG :: GroupingError: ERROR:" - PullRequest
0 голосов
/ 27 мая 2019

Я недавно перенес свою базу данных из sqlite3 в postgreSQL для приложения rails, над которым я работал. На одной из моих страниц я рисую график, используя ChartKick. До перехода на postgreSQL моя таблица и график работали нормально. Теперь страница не работает, и я получаю сообщение об ошибке:

PG :: GroupingError: ERROR: столбец «stats.created_at» должен появляться в предложении> GROUP BY или использоваться в статистической функции

Я использовал Google и попытался немного устранить его, но не могу заставить мой график работать нормально.

"<% = line_chart @ stats.group (: date) .sum (: weight)%>"

PG :: GroupingError: ERROR: столбец «stats.created_at» должен появляться в предложении GROUP BY или использоваться в статистической функции LINE 1: ... "." User_id "= $ 1 GROUP BY" stats "." Date "ORDER BY create_at ... ^ : SELECT SUM ("stats". "Weight") AS sum_weight, "stats". "Date" AS stats_date FROM "stats" WHERE "stats". "User_id" = $ 1 GROUP BY "stats". "Date" ORDER BY созданный_т DESC LIMIT $ 2 ОФСЕТ $ 3

EDIT Вот что у меня в контроллере для запроса данных:

# GET /stats.json индекс def @stats = current_user.stats.paginate (: page => params [: page], per_page: 5) .order ('creation_at DESC')
конец

Я также использую Ruby Gem "Paginate" для своего стола.

1 Ответ

0 голосов
/ 27 мая 2019

РЕШИТЬ:

Postgres не смог сгруппировать данные, потому что мой код не указал, какие данные получить. добавив «current_user» в мой код ChartKick, он смог ВЫБРАТЬ и отрисовывать данные нормально.

потерпит неудачу

"<% = line_chart @ stats.group (: date) .sum (: weight)%>" <</p>

Works!

"<% = line_chart <strong>current_user .stats.group (: date) .sum (: weight), discrete: true%>"

...