さて、私はRails 4th Edition(Rails 3.2以降)を使用したアジャイルWeb開発をフォローしており、デプロイメントを含む第16章に進んでいます。ほとんどの部分をフォローしましたが、herokuを使用したいので、先に進んでアプリをherokuにデプロイすることにしました。次の手順に従います。https : //devcenter.heroku.com/articles/rails3herokuのデプロイに取り掛かりました。しかし、私がアプリにアクセスしたとき:
heroku open
このエラーが発生しました:
We're sorry, but something went wrong.
したがって、実行後:
heroku logs
これが問題の原因であるエラーであることに気づきました。
2012-07-25T19:41:16+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: relation "carts" does not exist
2012-07-25T19:41:16+00:00 app[web.1]: WHERE a.attrelid = '"carts"'::regclass
2012-07-25T19:41:16+00:00 app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-07-25T19:41:16+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-07-25T19:41:16+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
2012-07-25T19:41:16+00:00 app[web.1]: ORDER BY a.attnum
2012-07-25T19:41:16+00:00 app[web.1]: ):
さて、herokuの指示に従いながら、gemfileの2つだけを変更しました。最初に私は変更しました:
gem 'sqlite3'
に:
gem 'pg'
そして私も追加しました:
ruby '1.9.3'
ファイルの先頭にあります。ただし、エラーが「PG」にあるため、エラーが発生したと想定し、「sqlite3」gemを「pg」に変更しました。私はsqlite3でアプリを開発したので、これがエラーの原因であると思います。これを検証しようとして、「pg」を「sqlite3」に戻し、「バンドルインストール」を実行しました。ただし、そうすると、次のエラーが発生しました。
Gemfile syntax error:
gem 'sass-rails', '~> 3.2.3'
'pg'に戻すと、このエラーはなくなります。誰かがここで初心者を助けてください。アプリをherokuにデプロイしたときに機能しなかったのはなぜですか。また、「herokuログ」で見つかったエラーの意味は何ですか。ありとあらゆる入力を歓迎します。