0

我是 ruby​​ on rails 环境的新手。我将我的数据库与使用seeds.rb. 在 heroku 服务器运行中TableName.all填充 heroku postgres 中存在的所有数据。当我尝试运行命令时

TableName.select("Distinct(Category)")

我得到错误

Column TableName.Category does not exist.

我尝试了更改列,但没有奏效。请让我知道这里出了什么问题。

提前致谢

编辑

在我的开发服务器上,它工作正常。开发站点上没有问题。我在 DEv 网站上使用 SQLite

编辑**

以下是续集文本:

  #rails console
    >>Recall.all
    SELECT "recalls".* From "recalls"
    =>[#<Recall id:1, Category: "******",......>]
>>Recall.select("Distinct(Category)")
SELECT DISTINCT(Category) From recalls
=>[#<Recall Category: "Foods">,#<Recall Category: "Consumer Products">]




    #heroku run console
    >>Recall.all
    SELECT "recalls".* From "recalls"
    =><Recall id:1, Category: "******",......>

>>Recall.select("Distinct(Category)")
Recall Load <2.5ms> SELECT DISTINCT(Category) FROM "recalls" 
PGError: ERROR: column "category" does not exist
LINE 1:SELECT DISTINCT(Category) FROM "recalls" 
                       ^
:SELECT DISTINCT(Category) FROM "recalls" 
ActiveRecord::StatementInvalid: PGError: ERROR: column "category" does not exist
LINE 1:SELECT DISTINCT(Category) FROM "recalls" 
:SELECT DISTINCT(Category) FROM "recalls" 
4

2 回答 2

1

看来您没有在 Heroku 上正确设置数据库表。你做了类似 run 的事情heroku run db:migrate吗?

你为什么不调查?你试过heroku pg:psql吗?见这里

此外,你真的不应该使用 SQLite——它不是同一个数据库——而且 SQL 不是跨数据库的标准。你会在某个时候遇到一个非常微妙的数据库错误。

于 2013-06-27T12:14:19.337 回答
0

我找到了答案。这是转义序列问题。这是我解决的方法

Recall.select("DISTINCT(\"Category\")")

参考这个问题 Rails and Heroku PGError: column does not exist

于 2013-06-28T05:10:00.707 回答