2011-01-06 3 views
1

다음에 첫 번째 webapp을 빌드하고 있습니다. Chapter 10을 끝내면 내 응용 프로그램이 로컬로 작동하지만 Heroku에 넣을 때 작동하지 않습니다. 개발 로그 출력을 읽고 다음 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) 

반면 :

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에 내 로컬 DB를 푸시했으나 여전히 동일한 오류가 발생합니다. 어떤 충고? 귀하의 도움에 미리 감사드립니다.

+0

이 문제가 발생한 지점의 코드를 알려주십시오. –

답변

1

있는지 확인

  1. 마이그레이션
  2. 가 (당신이 예를 들어 Heroku가에 레일 콘솔을 만들 수)

그것을 데이터베이스에 유효한 사용자를 가지고 heroku rake db:migrate와 Heroku가에 대한 데이터베이스 데이터베이스에 아무 것도 없을 때 코드가 User 인스턴스를로드하려고 시도하는 것 같습니다. 데이터베이스에 일부 사용자가있는 경우 앱이 작동하면 사용자가없는 경우 코드가 올바르게 작동하도록 수정하십시오.

+0

+1 튜토리얼 섹션 10.3.2 "샘플 사용자"참조 – zetetic

+0

안녕하십니까, 도움을 주셔서 감사합니다. 문제가 해결되었습니다. 내 홈 페이지의 특정 부분을 구성하는 부분은 먼저 사용자가 사이트에 로그인되어 있는지 확인하여 쿠키가 발견되지 않으면 인증 방법에 nil 객체를 전달합니다. 바보 같이 내 함수에 'nil'대신 ': nil'을 넣으므로 "nil"문자열이 DB 쿼리에 전달되었습니다. 왜 이것이 Heroku가 아니라 내 홈 서버에서 작동하는지에 대한 문제는 여전히 수수께끼 일뿐입니다. 내 홈 서버에 앱이 사용자가 아직 로그인되어 있다고 생각하게하는 영구 쿠키가있는 것으로 추측됩니다. – ArcGhost

0

일부 초기 값을 설정 한 경우 rake db : seed를 실행할 수도 있습니다.

관련 문제