ruby-2.3.7 Rails 5.1.4
Я пытаюсь узнать о страницах ошибок в приложениях Rails: как их создавать и как их вызывают / запускают. Я прочитал довольно много постов и блогов об этом. Я нашел несколько, которые используют тот же подход. Это кажется достаточно простым, поэтому я попытался реализовать его.
Когда я перехожу прямо на мою новую страницу 404 или 500: ...myapp/404
или ...myapp/500
, я получаю правильную пользовательскую страницу 404/500. Но когда я запускаю другую ошибку 500, я не делаю. Т.е.: ...myapp.employee/99999
выдает ошибку, потому что такого сотрудника нет:
500 Internal Server Error
If you are the administrator of this website, then please read this web application's log file and/or the web server's log file to find out what went wrong
Как получить ошибки, чтобы перейти на мои новые страницы ошибок?
Код:
config/environments/development.rb:
-------
# see error pages in dev site
config.consider_all_requests_local = false # true
config/application.rb:
-------
# added for error pages
config.exceptions_app = self.routes
config/routes.rb
------
get "/404", to: "errors#not_found", :via => :all
get "/500", to: "errors#internal_server_error", :via => :all
controllers/errors_controller.rb
-----
class ErrorsController < ApplicationController
def not_found
respond_to do |format|
format.html { render status: 404 }
end
end
def internal_server_error
respond_to do |format|
format.html { render status: 500 }
end
end
end
---> these work so I wont paste the content here.
app/views/errors/not_found.html.erb
app/views/errors/internal_server_error.html.erb
Это правильный подход? Если да, то что я упускаю или не понимаю.
Спасибо за любую помощь.