教程demo_app不适用于heroku

时间:2011-10-21 13:41:52

标签: ruby-on-rails heroku

我正在尝试从Heroku上的Ruby on Rails 3 Tutorial一书中运行第二章demo_app,但它无法运行。 gws-demp-app.heroku.com给出了默认的Rails页面,但是gws-demo-app.heroku.com/users给出了一个网页,上面写着“我们很抱歉,但出了点问题。”在我的桌面上它工作正常。我正在使用RailsInstaller.org的工具。

本章末尾的heroku rake db:migrate没有找到activerecord-postgresql-adapter,所以我做了install gem pgbundle install,并更新了Gemfile和存储库。一切都在https://github.com/gwshaw/demo_app的github上。

https://stackoverflow.com/questions/7619551/heroku-rake-dbmigrate-success-but-not-showing-in-app出现了同样的问题 我在那里尝试了heroku restart,但这导致:重启进程... C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:6 44:在`initialize'中:getaddrinfo:没有这样的主机是已知的。 (SocketError)

我尝试了声称有效的方法,使用bundle exec rake assets:precompile预编译资产,但会产生错误:C:/RailsInstaller/Ruby1.9.2/bin/ruby.exe C:/RailsInstaller/Ruby1.9.2/bin / rake as sets:precompile:all RAILS_ENV = production RAILS_GROUPS = assets 耙子流产了! TypeError:Object不支持此属性或方法   (在C:/Sites/rails_projects/demo_app/app/assets/javascripts/application.js)

我是ruby和rails的新手,所以我很茫然。有什么想法吗?

解决方案如下。

3 个答案:

答案 0 :(得分:3)

是的,在安装pg gem之后,这也适用于我,我运行了以下内容:

bundle exec rake assets:precompile
git add .
git commit -am "add a note reflecting changes made"
git push
heroku create
git push heroku master
heroku rake db:migrate
heroku db:push

在调用这些命令后,我能够在heroku上成功打开demo_app。

答案 1 :(得分:0)

感谢您的帖子 - 我是Rails的新手,但阅读您的帖子帮助了我一个非常类似的问题。 这对我有用:

安装pg gem以在Heroku上使用postgreSQL:related article

sudo gem install pg

安装点击gem以允许将本地数据库推送到Heroku:related article

gem install taps

然后是以下序列......

bundle exec rake assets:precompile
git add .
git commit -am "add a note reflecting changes made"
git push
heroku create
git push heroku master
heroku rake db:migrate
heroku db:push

如果您仍然遇到麻烦,这些文章也很有帮助:
Stack Overflow - Heroku command: Heroku Rake db:migrate fails
Heroku - Getting Started with Rails 3.0 on Heroku/Cedar

答案 2 :(得分:0)

bundle exec rake assets:precompile的问题是关键,并在RoR Precompiling Assets fail while rake assets:precompile - on basically empty application.js

解决

奇怪的是,Heroku不会自动预编译git push heroku上的资产,因此无法找到它们。我不认为这个小demo_app甚至使用资产,所以这可能是它没有预编译的原因,但它仍然找不到applicaiton.css并且失败了。一旦我在production.rb中设置config.log_level = :debug,我就可以在日志中看到问题。由于上面的修复,预编译工作正常,一切正常。