Próbuję uruchomić rozdział 2 demo_app zRuby on Rails 3 Tutorial na Heroku i nie działa. gws-demp-app.heroku.com podaje domyślną stronę Railsów, ale gws-demo-app.heroku.com/users podaje stronę z napisem "Przepraszamy", ale coś poszło nie tak. "Na moim pulpicie działa dobrze, używam narzędzi z RailsInstaller.org.
Miałem problemy z heroku rake db:migrate
na końcu rozdziału nie znalazłem adaptera activerecord-postgresql, więc zrobiłem install gem pg
, bundle install
i zaktualizował Gemfile i repozytoria. Wszystko jest na Github w https://github.com/gwshaw/demo_app.
To, na co wygląda ten sam problem, pojawia się na https://stackoverflow.com/questions/7619551/heroku-rake-dbmigrate-success-but-not-showing-in-app
próbowałem heroku restart
zalecane, ale to powoduje: Ponowne uruchamianie procesów ... C: /RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb: 6 44: in `initialize": getaddrinfo: Nie jest znany taki host. (SocketError)
Próbowałem tego, co rzekomo działa, prekompilując zasoby bundle exec rake assets:precompile
, ale to generuje błąd: 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 gra została przerwana! TypeError: Obiekt nie obsługuje tej właściwości lub metody (w C: /Sites/rails_projects/demo_app/app/assets/javascripts/application.js)
Jestem nowy w rubinach i szynach, więc nie jestem w stanie. Jakieś pomysły?
Rozwiązano poniżej.
Odpowiedzi:
3 dla odpowiedzi № 1Tak, to działało również dla mnie po zainstalowaniu gem pg, uruchomiłem następujące:
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
po wywołaniu tych poleceń udało mi się otworzyć demo_app na heroku.
0 dla odpowiedzi nr 2
Dzięki za twój post - Jestem nowy w Rails, ale przeczytanie twojego postu pomogło mi z bardzo podobnym problemem. Oto co sprawdziło się dla mnie:
Zainstaluj pg gem, aby użyć postgreSQL na Heroku: (powiązany artykuł)
sudo gem install pg
Zainstaluj klejnot klejnotów, aby umożliwić push lokalnej bazy danych do Heroku: (powiązany artykuł)
gem install taps
następnie następująca sekwencja ...
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
Jeśli nadal masz problemy, artykuły te są również pomocne:
Stack Overflow - Polecenie Heroku: Heroku Rake db: migrate failed
Heroku - Pierwsze kroki z Rails 3.0 na Heroku / Cedar
0 dla odpowiedzi № 3
Problem z bundle exec rake assets:precompile
był kluczem i został rozwiązany tutaj RoR Precompiling Assets zawodzi, gdy aktywa prowizji: prekompilacja - w zasadzie puste app.js
Dziwne, że Heroku nie dokona automatycznej prekompilacji aktywów na git push heroku
i dlatego ich nie znajdą. Nie sądzę, że ten mały demo_app używa nawet zasobów, więc może dlatego nie prekompilował, ale wciąż nie mógł znaleźć applicaiton.css
i nie udało się. Raz ustawiłem config.log_level = :debug
w production.rb, mogłem zobaczyć problem w logach. Dzięki prekompilacji działającej z powodu powyższej poprawki wszystko działało.