2011-01-06 10 views
1

に続いて最初のwebappを構築しています。 Chapter 10を終了した後、私のアプリケーションはローカルで動作しますが、Herokuにプッシュすると動作しません。開発のログ出力は読み:HerokuにプッシュするときのActionViewエラー

Started GET "/" for 98.154.183.51 at Thu Jan 06 01:07:15 -0800 2011 
    Processing by PagesController#home as HTML 
Rendered layouts/_header.html.erb (28.3ms) 
Rendered pages/home.html.erb within layouts/application (30.9ms) 
Completed in 35ms 
User Load (29.6ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 101) LIMIT 1 
    CACHE (0.0ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 101) LIMIT 1 
Rendered layouts/_header.html.erb (149.3ms) 
    CACHE (0.0ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 101) LIMIT 1 
Rendered layouts/_sidebar.html.erb (8.1ms) 
Rendered layouts/_footer.html.erb (0.6ms) 
Rendered sessions/new.html.erb within layouts/application (342.4ms) 
Completed 200 OK in 421ms (Views: 390.1ms | ActiveRecord: 29.9ms) 

Herokuの生産ログの読み取りに対し:

Started GET "/" for 98.154.183.51 at Thu Jan 06 01:07:15 -0800 2011 
    Processing by PagesController#home as HTML 
Rendered layouts/_header.html.erb (28.3ms) 
Rendered pages/home.html.erb within layouts/application (30.9ms) 
Completed in 35ms 

ActionView::Template::Error (PGError: ERROR: invalid input syntax for integer: "nil" 
: SELECT "users".* FROM "users" WHERE ("users"."id" = 'nil') LIMIT 1): 

Herokuの配備アプリは私の地元のに対し、「ゼロ」のuser_idを探し、なぜ私はわからないんだけどアプリは「101」のいずれかを探します。これは私の最初のアプリなので、どこでトラブルシューティングを開始するのか分かりません。私はheroku rake db:push経由でHerokuにローカルデータベースをプッシュしようとしましたが、私はまだ同じエラーが発生します。何かアドバイス?あなたの助けを前にありがとう。

+0

これが起こっているビューのコードをお知らせください。 –

答えて

1

あなた

  1. heroku rake db:migrate
  2. それは

(あなたが例えばHerokuの上のRailsコンソールで1を作成することができます)、データベース内の有効なユーザーがいるとHerokuの上にデータベースを移行していることを確認しますあなたのデータベースに何もないときにあなたのコードがUserインスタンスをロードしようとしているようです。データベースにユーザーがいればアプリが動作する場合は、ユーザーがいなくても適切に行動するようにコードを修正してください。

+0

+1チュートリアルのセクション10.3.2「サンプルユーザー」 – zetetic

+0

こんにちは皆、おかげさしだしてください。問題は解決されました。私のホームページの特定の部分を構成する部分は、最初に、ユーザーがサイトにサインインしているかどうかを確認し、クッキーが見つからなければ認証メソッドに無名オブジェクトを渡します。私は愚かに 'nil'を 'nil'の代わりに 'nil'に置き換えたので、文字列 "nil"はDBクエリに渡されました。なぜこれが私のホームサーバーであり、Herokuではないのかに関しては、それはまだ謎のようなものです。私のホームサーバーには永続的なクッキーがあって、ユーザーがまだサインインしていると思うようになっていると推測しています。 – ArcGhost

0

いくつかの初期値を設定している場合は、rake db:seedを実行することもできます。

関連する問題