【发布时间】:2019-10-13 03:21:01
【问题描述】:
我最近将我的数据库从 sqlite3 迁移到 postgreSQL,用于我一直在开发的 rails 应用程序。在我的一个页面上,我正在使用“ChartKick”渲染一个图表。在切换到 postgreSQL 之前,我的表格和图表运行良好。现在页面失败了,我得到一个错误:
PG::GroupingError: ERROR: column "stats.created_at" 必须出现在 >GROUP BY 子句中或在聚合函数中使用
我使用了 Google 并尝试了一些故障排除,但无法让我的图表正常运行。
""
PG::GroupingError: ERROR: column "stats.created_at" 必须出现在 GROUP BY 子句中或在聚合函数中使用 第 1 行:..."."user_id" = $1 GROUP BY "stats"."date" ORDER BY created_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 created_at DESC 限制 $2 抵消 $3
编辑 这是我在控制器中查询数据的内容:
# 获取 /stats.json 定义索引 @stats = current_user.stats.paginate(:page => params[:page], per_page: 5 ).order('created_at DESC')
结束
我还在为我的表使用 Ruby Gem “Paginate”。
【问题讨论】:
-
这是一个 PostgreSQL 错误,而不是 ChartKick 错误(这就是它显示
PG::GroupingError::ERROR的原因)。也许显示查询代码会有所帮助。 -
可能来自
@stats.group(:date).sum(:weight)这一行。统计表是什么样的?date是该数据库列的名称不是created_at吗?
标签: ruby-on-rails postgresql chartkick