Hartl Tutorial 3.1: 500 Runtime Ошибка при переходе на "домашнюю" статическую страницу
Я чрезвычайно новичок в кодировании в целом - так что будьте осторожны.
Я в главе 3, 3.1, в самом конце после создания static_pages
, домой и помочь, введя $ rails generate controller StaticPages home help
Я не могу перейти на страницу, не получив соответствующую 500 Ошибка выполнения, которая, в свою очередь, Killed
работающий сервер.
Приложение "Привет" прекрасно работает, и до сих пор у меня не было проблем.
Примечания: Я следую руководству по Windows 7 x64, но я принимаю рекомендацию Хартла использовать Cloud IDE с Git, Bitbucket и Heroku. Мне пришлось запустить Rails 4.2.1 вместо Rails 4.2.2, однако из-за проблемы при первом запуске.
Что я могу делать не так? Пожалуйста, дайте мне знать, если мне нужно будет включить больше информации, это все очень ново для меня.
РЕДАКТИРОВАТЬ:
Я снова проверил свои файлы, что сказал @Rich Peck, и они все те же, кроме Routes.rb
файл, который имеет только это (который был сгенерирован системой, я также опускаю все # комментарии):
Rails.application.routes.draw do
get 'static_pages/home'
get 'static_pages/help'
root 'application#hello'
end
Я также вытащил мои журналы, как указано в нескольких комментариях, и это результат последних 100 строк:
2015-10-11T21:25:49.589384+00:00 app[web.1]: => Run
сервер рельсы -hfor more startup options
2015-10-11T21:25:49.589385+00:00 app[web.1]: => Ctrl-C to shutdown server
2015-10-11T21:25:49.589386+00:00 app[web.1]: Started GET "/" for 208.115.151.20 at 2015-10-11 21:25:49 +0000
2015-10-11T21:25:49.646987+00:00 app[web.1]: Processing by ApplicationController#hello as HTML
2015-10-11T21:25:49.656139+00:00 app[web.1]: Completed 200 OK in 9ms (Views: 0.8ms | ActiveRecord: 0.0ms)
2015-10-11T21:25:49.655832+00:00 app[web.1]: Rendered text template (0.0ms)
2015-10-11T21:25:49.786454+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=mysterious-journey-1439.herokuapp.com request_id=2474855b-e5c5-4db8-8b2a-83f0d6095d2d fwd="208.115.151.20" dyno=web.1 connect=0ms service=3ms status=200 bytes=228
2015-10-11T21:25:49.658965+00:00 heroku[router]: at=info method=GET path="/" host=mysterious-journey-1439.herokuapp.com request_id=e85687fc-6820-42c1-b389-4a6d8e0e2ffa fwd="208.115.151.20" dyno=web.1 connect=0ms service=73ms status=304 bytes=397
2015-10-11T21:59:04.638018+00:00 heroku[web.1]: Idling
2015-10-11T21:59:04.638730+00:00 heroku[web.1]: State changed from up to down
2015-10-11T21:59:04.639573+00:00 heroku[web.1]: State changed from down to starting
2015-10-11T21:59:06.575098+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2015-10-11T21:59:06.991420+00:00 app[web.1]: [2015-10-11 21:59:06] FATAL SignalException: SIGTERM
2015-10-11T21:59:06.991427+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in
выберите приложение 2015-10-11T21:59:06.991429+00:00 [web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in block in start'
2015-10-11T21:59:06.991431+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:32:in
start '2015-10-11T21: 59: 06.991432 + 00:00 приложение [web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in start'
2015-10-11T21:59:06.991433+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb:34:in
запустите '
2015-10-11T21:59:06.991434+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/server.rb:286: в start'
2015-10-11T21:59:06.991436+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/server.rb:80:in
start'
2015-10-11T21:59:06.991438+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:80: в block in server'
2015-10-11T21:59:06.991440+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75:in
нажмите "2015-10-11T21:59:06.991441+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75: в server'
2015-10-11T21:59:06.991442+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in
Команда запуска!'
2015-10-11T21:59:06.991443+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands.rb:17:в <top (required)>'
2015-10-11T21:59:06.991445+00:00 app[web.1]: bin/rails:8:in
require'
2015-10-11T21:59:06.991446+00:00 app[web.1]: корзина / рельсы:8: в <main>'
2015-10-11T21:59:06.991478+00:00 app[web.1]: [2015-10-11 21:59:06] INFO WEBrick::HTTPServer#start done.
2015-10-11T21:59:06.991452+00:00 app[web.1]: [2015-10-11 21:59:06] INFO going to shutdown ...
2015-10-11T21:59:06.991498+00:00 app[web.1]: Exiting
2015-10-11T21:59:07.767999+00:00 heroku[web.1]: Process exited with status 143
2015-10-11T21:59:08.554265+00:00 heroku[web.1]: Starting process with command
сервер bin / rails -p 21794 -e производство
2015-10-11T21:59:12.579369+00:00 app[web.1]: [2015-10-11 21:59:12] INFO WEBrick 1.3.1
2015-10-11T21:59:12.579406+00:00 app[web.1]: [2015-10-11 21:59:12] INFO ruby 2.0.0 (2015-04-13) [x86_64-linux]
2015-10-11T21:59:12.579784+00:00 app[web.1]: [2015-10-11 21:59:12] INFO WEBrick::HTTPServer#start: pid=3 port=21794
2015-10-11T21:59:13.087410+00:00 heroku[web.1]: State changed from starting to up
2015-10-11T22:34:07.204262+00:00 heroku[web.1]: Idling
2015-10-11T22:34:07.204981+00:00 heroku[web.1]: State changed from up to down
2015-10-11T22:34:10.871115+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2015-10-11T22:34:11.813473+00:00 app[web.1]: [2015-10-11 22:34:11] FATAL SignalException: SIGTERM
2015-10-11T22:34:11.813479+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in
выберите приложение 2015-10-11T22:34:11.813483+00:00 [web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in block in start'
2015-10-11T22:34:11.813484+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:32:in
start '2015-10-11T22: 34: 11.813486 + 00:00 приложение [web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in start'
2015-10-11T22:34:11.813487+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb:34:in
запустить '
2015-10-11T22:34:11.813489+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/server.rb:286: в start'
2015-10-11T22:34:11.813490+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/server.rb:80:in
start'
2015-10-11T22:34:11.813492+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:80: в block in server'
2015-10-11T22:34:11.813493+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75:in
нажмите "2015-10-11T22:34:11.813495+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75: в server'
2015-10-11T22:34:11.813497+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39:in
Команда запуска!'
2015-10-11T22:34:11.813498+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands.rb:17:в <top (required)>'
2015-10-11T22:34:11.813500+00:00 app[web.1]: bin/rails:8:in
require'
2015-10-11T22:34:11.813501+00:00 app[web.1]: корзина / рельсы:8: в <main>'
2015-10-11T22:34:11.813508+00:00 app[web.1]: [2015-10-11 22:34:11] INFO going to shutdown ...
2015-10-11T22:34:11.813551+00:00 app[web.1]: [2015-10-11 22:34:11] INFO WEBrick::HTTPServer#start done.
2015-10-11T22:34:11.813591+00:00 app[web.1]: => Booting WEBrick
2015-10-11T22:34:11.813594+00:00 app[web.1]: => Run
сервер рельсы -hfor more startup options
2015-10-11T22:34:11.813593+00:00 app[web.1]: => Rails 4.2.1 application starting in production on http://0.0.0.0:21794
2015-10-11T22:34:11.813598+00:00 app[web.1]: Exiting
2015-10-11T22:34:11.813596+00:00 app[web.1]: => Ctrl-C to shutdown server
2015-10-11T22:34:12.863144+00:00 heroku[web.1]: Process exited with status 143
2015-10-11T22:59:27.859347+00:00 heroku[web.1]: Unidling
2015-10-11T22:59:27.859754+00:00 heroku[web.1]: State changed from down to starting
2015-10-11T22:59:31.767799+00:00 heroku[web.1]: Starting process with command
сервер bin / rails -p 43789 -e производство
2015-10-11T22:59:35.850425+00:00 app[web.1]: [2015-10-11 22:59:35] INFO WEBrick 1.3.1
2015-10-11T22:59:35.850445+00:00 app[web.1]: [2015-10-11 22:59:35] INFO ruby 2.0.0 (2015-04-13) [x86_64-linux]
2015-10-11T22:59:35.850845+00:00 app[web.1]: [2015-10-11 22:59:35] INFO WEBrick::HTTPServer#start: pid=3 port=43789
2015-10-11T22:59:36.187808+00:00 heroku[web.1]: State changed from starting to up
2015-10-11T22:59:36.930155+00:00 app[web.1]: => Booting WEBrick
2015-10-11T22:59:36.930162+00:00 app[web.1]: => Rails 4.2.1 application starting in production on http://0.0.0.0:43789
2015-10-11T22:59:36.930163+00:00 app[web.1]: => Run
сервер рельсы -hfor more startup options
2015-10-11T22:59:36.930165+00:00 app[web.1]: => Ctrl-C to shutdown server
2015-10-11T22:59:36.963421+00:00 app[web.1]: Processing by ApplicationController#hello as HTML
2015-10-11T22:59:36.930166+00:00 app[web.1]: Started GET "/" for 208.115.151.20 at 2015-10-11 22:59:36 +0000
2015-10-11T22:59:36.971478+00:00 app[web.1]: Completed 200 OK in 8ms (Views: 0.6ms | ActiveRecord: 0.0ms)
2015-10-11T22:59:36.974594+00:00 heroku[router]: at=info method=GET path="/" host=mysterious-journey-1439.herokuapp.com request_id=b8fe0c84-e45c-4997-be06-9742f276fb98 fwd="208.115.151.20" dyno=web.1 connect=1ms service=47ms status=304 bytes=397
2015-10-11T22:59:36.971195+00:00 app[web.1]: Rendered text template (0.0ms)
2015-10-11T22:59:37.155800+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=mysterious-journey-1439.herokuapp.com request_id=ce175e20-0e6c-40e1-9e4e-ec842143c159 fwd="208.115.151.20" dyno=web.1 connect=16ms service=4ms status=200 bytes=228
2015-10-11T23:35:06.014571+00:00 heroku[web.1]: Idling
2015-10-11T23:35:06.015165+00:00 heroku[web.1]: State changed from up to down
2015-10-11T23:35:08.748838+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2015-10-11T23:35:09.396823+00:00 app[web.1]: [2015-10-11 23:35:09] FATAL SignalException: SIGTERM
2015-10-11T23:35:09.396829+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in
выберите приложение 2015-10-11T23:35:09.396831+00:00 [web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:170:in block in start'
2015-10-11T23:35:09.396833+00:00 app[web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:32:in
start '2015-10-11T23: 35: 09.396834 + 00:00 приложение [web.1]: /app/vendor/ruby-2.0.0/lib/ruby/2.0.0/webrick/server.rb:160:in start'
2015-10-11T23:35:09.396835+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/handler/webrick.rb:34:in
запустить '
2015-10-11T23:35:09.396838+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/server.rb:80: в start'
2015-10-11T23:35:09.396836+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/rack-1.6.4/lib/rack/server.rb:286:in
начало '
2015-10-11T23:35:09.396843+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:39: в run_command!'
2015-10-11T23:35:09.396840+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:80:in
блок на сервере '2015-10-11T23: 35: 09.396846 + 00: 00 app [web.1]: bin / rails:8: in require'
2015-10-11T23:35:09.396847+00:00 app[web.1]: bin/rails:8:in
'2015-10-11T23: 35: 09.396842 + 00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks. гь: 75: в server'
2015-10-11T23:35:09.396841+00:00 app[web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands/commands_tasks.rb:75:in
нажмите "2015-10-11T23:35:09.396844+00:00 приложение [web.1]: /app/vendor/bundle/ruby/2.0.0/gems/railties-4.2.1/lib/rails/commands.rb: 17: в <top (required)>'
2015-10-11T23:35:09.396853+00:00 app[web.1]: [2015-10-11 23:35:09] INFO going to shutdown ...
2015-10-11T23:35:09.396894+00:00 app[web.1]: Exiting
2015-10-11T23:35:09.396870+00:00 app[web.1]: [2015-10-11 23:35:09] INFO WEBrick::HTTPServer#start done.
2015-10-11T23:35:10.254851+00:00 heroku[web.1]: Process exited with status 143
WARNING: Toolbelt v3.42.17 update available.
1 ответ
Я чрезвычайно новичок в кодировании
Поскольку вы новичок, я расскажу вам, как мне это отладить. Это не может быть ответом сам по себе, но это должно по крайней мере помочь вам.
Во-первых, вам нужно убедиться, что у вас есть право controller
а также views
настроить.
Основная проблема для многих новых программистов заключается в том, что они будут слепо следовать руководству и не смогут понять, что делается. Я знаю, на что это похоже, потому что я делаю это все время (изучая что-то новое)..
Таким образом, вам необходимо понять, что добавляется в ваше приложение и как оно должно себя вести:
1. Контроллер
Ваш первый порт захода - контроллер.
Вы можете прочитать больше об этом здесь.
Rails создаст:
#app/controllers/static_pages_controller.rb
class StaticPagesController < ApplicationController
def hello
end
def help
end
end
Это, хотя не строго придерживаясь CRUD
Настройка, которую вы будете использовать позже в Rails, должна дать вам как минимум возможность вызывать эти два действия.
Сначала вы должны проверить, есть ли у вас вышеуказанный файл.
2. Просмотров
Во-вторых, вам нужно посмотреть на созданные вами виды.
Они будут расположены по адресу:
#app/views/static_pages/hello.html.erb
#app/views/static_pages/help.html.erb
Оба из них обеспечат функциональность, позволяющую вам просматривать результаты действий вашего контроллера. В настоящее время они не важны для процесса отладки.
У них действительно не должно быть ничего внутри.
3. Маршруты
Наконец, вы хотите посмотреть на свои маршруты.
#config/routes.rb
resources :static_pages, only: [], path: "" do
collection do
get :hello #-> url.com/hello
get :help #-> url.com/help
end
end
Это даст вам возможность получить доступ к действиям контроллера и благодаря только что сгенерированным представлениям.
Все это должно работать вместе, без каких-либо данных, чтобы обеспечить доступ к url.com/hello
а также url.com/help
,
http://asciicasts.com/system/photos/232/original/E187I01.png
500 ошибок в основном говорят о том, что на вашем сервере произошла ошибка.
Какие ошибки на сервере могут вызвать проблему 500?
В основном это связано с вызовом переменных, которые не существуют...
#app/views/static_pages/hello.html.erb
<%= @hello %>
Если вы используете Heroku
Лучший способ отладки - как и в случае с обычными Rails - это посмотреть на консоль. В стандартных направляющих консоль видна на вашем экране (большую часть времени); с Heroku все немного по-другому.
Логи Heroku странные, потому что они не очень хорошо форматируются в Windows. Мы склонны использовать LogEntries
с "живой" функциональностью, чтобы увидеть, что происходит, и исправить это:
Просмотр этих журналов покажет вам, в чем заключается ошибка, и, таким образом, даст вам представление о том, как ее исправить.
-
Наконец, вы можете использовать драгоценный камень, такой как better_errors
или же exception_handler