我正在构建我的第一个webapp,跟随Michael Hartl Rails Tutorial。完成Chapter 10后,我发现我的应用程序在本地工作,但是当我将它推送到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
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为“nil”,而我的本地应用程序会查找“101”之一。这是我的第一个应用程序,所以我不确定从哪里开始进行故障排除。我已经尝试通过heroku rake db:push
将我的本地数据库推送到Heroku,但我仍然得到相同的错误。有什么建议?在此先感谢您的帮助。
答案 0 :(得分:1)
确保你
heroku rake db:migrate
当您的数据库中没有用户实例时,您的代码似乎正在尝试加载。如果您的应用程序在您的数据库中有一些用户后工作,请修复您的代码,以便在没有用户存在时采取适当的行动。
答案 1 :(得分:0)
如果你已经设置了一些初始值,你可能还想运行rake db:seed。