1

find ステートメントを使用して作成されたテーブルに関して、heroku へのデプロイ時に問題が発生しました。ローカルサーバーを使用している場合は完全に機能しましたが、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 に答える