1

在部署到 heroku 时遇到关于使用 find 语句构建的表的问题。它们在使用本地服务器时运行良好,但在 heroku 上却没有,我收到“很抱歉,但出了点问题”错误。我遇到了一些其他线程,这表明它可能是 postgresql 中区分大小写的问题,并不是我对此了解很多,但我尝试确保大写始终保持一致,并且似乎没有什么不同。

Heroku 日志

2012-08-14T00:31:30+00:00 app[web.1]: Processing by ApartmentsController#aptMenu as HTML
2012-08-14T00:31:30+00:00 app[web.1]: Completed 500 Internal Server Error in 4ms
2012-08-14T00:31:30+00:00 app[web.1]: 
2012-08-14T00:31:30+00:00 app[web.1]: LINE 1: SELECT "apartments".* FROM "apartments"  WHERE (bed = 0)
2012-08-14T00:31:30+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR:  column "bed" does not exist

控制器

def aptMenu
  @apartments = Apartment.all
  @studio = Apartment.find(:all, :conditions => ["bed = 0"])

架构

create_table "apartments", :force => true do |t|
t.integer  "bed"

我对这种看到感到很困惑,因为根据我能看到的一切,“床”列确实存在。任何帮助将非常感激。

4

1 回答 1

4

出现此问题的原因是生产数据库上的 Apartment 表缺少列 Bed。您需要在生产端迁移。

heroku rake db:migrate

看看新列是否出现。

确保你也重新启动你的heroku。

heroku restart

于 2012-08-14T01:06:28.670 回答