서버가 프로덕션 모드에서 오류가 발생하면 개발 모드에서 볼 수있는 스택 추적이 아니라 기본 레일 오류 페이지가 표시됩니다.
사용자 정의 정적 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 오류를 처리하지 않습니다. 그러나, 당신은 설정/routes.rb의 하단에 다음 넣어 찾을 수없는 경로를 처리하는 기본 동작을 지정할 수 있습니다
map.connect '*path', :controller => 'home', :action => 'page_not_found'
편집 :
좀 더 연구를 수행 한 후, 대체 오류 가능성이있는 사용자 지정 오류 처리 방법이 있습니다 (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
. 주요 범죄자는 진위성 토큰을 확인하는 것입니다. – Samuel
답변을 주셔서 감사합니다. 그러나 정확히 내가 찾던 내용이 아닙니다. 제 질문은 분명하지 않아서 제가 고쳐 주셨습니다. 이 답변은 앞으로 유용 할 것입니다. – stellard