Когда ваш сервер обнаруживает ошибку в рабочем режиме, он отображает страницу ошибки по умолчанию на рельсах, а не трассировку стека, которую вы видите в режиме разработки.
Вы можете добавить пользовательские статические html 500 или 404 страницы ошибок, поместив их в public / 500.html и public / 404.html.
Если вы хотите обрабатывать ошибки по-другому, вы можете поместить следующий код в ApplicationController (этот код не проверен, но основан на очень похожем методе в одном из моих проектов):
around_filter :handle_errors
def handle_errors
begin
yield
rescue Exception => e
# Handle the exception however you wish.
end
end
Обратите внимание, что код выше не будет обрабатывать 404 ошибки. Однако вы можете указать действие по умолчанию для обработки маршрутов, которые не могут быть найдены, поместив следующее в конец config / rout.rb:
map.connect '*path', :controller => 'home', :action => 'page_not_found'
Edit:
После более подробного изучения существует альтернативный и, вероятно, лучший способ пользовательской обработки ошибок: http://brian.pontarelli.com/2007/01/14/handling-rails-404-and-500-errors/. По существу, рекомендуется переписать метод rescue_action_in_public
, как показано ниже:
def rescue_action_in_public(exception)
render :template => "shared/error", :layout => "standard", :status => "500"
end