ChartKick引发错误“ PG :: GroupingError:错误:”

时间:2019-05-27 14:25:01

标签: ruby-on-rails postgresql chartkick

我最近将我的数据库从sqlite3迁移到了我正在开发的Rails应用程序的postgreSQL。在我的其中一页上,我正在使用“ ChartKick”绘制图形。在切换到postgreSQL之前,我的表和图形运行良好。现在页面失败,我得到一个错误:

  

PG :: GroupingError:错误:“ stats.created_at”列必须出现在> GROUP BY子句中或在聚合函数中使用

我使用过Google并尝试对其进行故障排除,但是无法使我的图形正常运行。

  

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

     

PG :: GroupingError:错误:列“ 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 LIMIT $ 2 OFFSET $ 3

编辑 这是我在控制器中查询数据的内容:

  

#GET /stats.json     定义指数       @stats = current_user.stats.paginate(:page => params [:page],每页:5).order('created_at DESC')
    结束

我还在表上使用Ruby Gem“ Paginate”。

1 个答案:

答案 0 :(得分:0)

已解决:

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

会失败

  

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

工作!

  

“ <%= line_chart 当前用户 .stats.group(:date).sum(:weight),离散值:true%>”