【问题标题】:ChartKick throwing error "PG::GroupingError: ERROR:"ChartKick 抛出错误“PG::GroupingError: ERROR:”
【发布时间】: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


【解决方案1】:

已解决:

Postgres 无法对数据进行分组,因为我的代码没有指定要获取的数据。通过在我的 ChartKick 代码中添加“current_user”,它能够很好地选择和呈现数据。

会失败

""

有效!

"current_user.stats.group(:date).sum(:weight),离散:true %>"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多