我正在尝试从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 pg
,bundle 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的新手,所以我很茫然。有什么想法吗?
解决方案如下。
答案 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
,我就可以在日志中看到问题。由于上面的修复,预编译工作正常,一切正常。