【发布时间】:2015-09-06 10:31:34
【问题描述】:
我有一个使用标记和 sqlite 的 rails 应用程序,我正尝试将其部署为学校作业。当我部署到 Heroku(它转换为 Postgresql)时,尝试运行它时出现错误。它与 SQLITE 和 POSTGRESQL 之间的一些差异有关(从日志看来)
有两个表被连接,tags 和 tagging 存储与帖子相关的标签。
Rails 代码:
self.select("name, count(taggings.tag_id) as count")
.joins(:taggings).group("taggings.tag_id")
这是从控制台捕获的 SQLite 生成的 sql:
Tag Load (0.2ms) SELECT name, count(taggings.tag_id) as count
FROM "tags" INNER JOIN "taggings" ON "taggings"."tag_id" = "tags"."id"
GROUP BY taggings.tag_id
这是基于在 Postgresql 下运行的语句的 Heroku 日志错误:
2015-06-20T03:25:00.360433+00:00 app[web.1]: **PG::GroupingError**: ERROR: column "tags.name" must appear in the GROUP BY clause or be used in an aggregate function
2015-06-20T03:25:00.360435+00:00 app[web.1]: LINE 1: SELECT name, count(taggings.tag_id) as count FROM "tags" INN...
2015-06-20T03:25:00.360417+00:00 app[web.1]: Tag Load (2.5ms) SELECT name, count(taggings.tag_id) as count FROM "tags" INNER JOIN "taggings" ON "taggings"."tag_id" = "tags"."id" GROUP BY taggings.tag_id
我目前正在尝试寻找解决方案,但可以使用一些帮助谢谢!
我正在使用 postgres 9.3 和 rails 4.1
【问题讨论】:
标签: ruby-on-rails postgresql heroku