어떻게 RecordNotFound를 처리 할 수 있는지 알고 있습니다레일 - 예외 처리
그러나 라우팅 오류 ([GET]과 일치하지 않는 경로)를 어떻게 처리 할 수 있습니까? - 내가 대답을 찾을 수없는이 주제에
PS 당신 config/routes.rb
의 다른 모든 경로 후 Rails - how to handle routes that don't exist ("No route matches [GET]")?
어떻게 RecordNotFound를 처리 할 수 있는지 알고 있습니다레일 - 예외 처리
그러나 라우팅 오류 ([GET]과 일치하지 않는 경로)를 어떻게 처리 할 수 있습니까? - 내가 대답을 찾을 수없는이 주제에
PS 당신 config/routes.rb
의 다른 모든 경로 후 Rails - how to handle routes that don't exist ("No route matches [GET]")?
을이 줄을 추가 :
match '*url' => 'errors#routing'
그런 다음 ErrorsController
라는 컨트롤러를 작성을하고 routing
를 추가 어떤 페이지에서 params[:url]
을 사용하면 어떤 URL이 원인인지 알 수 있습니다.
그런데 웹 사이트에 죽은 링크가 있는지 확인하는 좋은 방법입니다.
희망이 있습니다.
고맙습니다 =) – user1466717
라우팅을 처리하는 또 다른 방법 (다른 모든)은 당신의와 ApplicationController에 다음을 추가하는 것입니다
unless Rails.application.config.consider_all_requests_local
rescue_from Exception do |e|
render_500 e
end
rescue_from ActionController::RoutingError, with: :render_404
rescue_from ActionController::UnknownController, with: :render_404
rescue_from ActionController::UnknownAction, with: :render_404
rescue_from ActiveRecord::RecordNotFound, with: :render_404
end
그런 다음 그들이 실제로 뭔가를 렌더링 할 수 있도록 render_500
및 render_404
을 정의해야합니다.
def render_404(exception)
@not_found_path = exception.message
respond_to do |format|
format.html { render template: 'errors/error_404', layout: 'layouts/application', status: 404 }
format.all { render nothing: true, status: 404 }
end
end
을 그리고 errors/error_404
에서 템플릿을 만들어 내 응용 프로그램에서 나는 완료했습니다. 그런 식으로 모든 라우팅 오류를 처리하고 응용 프로그램 레이아웃을 계속 사용합니다.
@not_found_path를 사용하여 오류를 사용자에게 표시 할 수 있습니다.
이 메서드를 사용하여 "RecordNotFound"예외를 catch했습니다. 고맙습니다. – user1466717
라우트를 변경하거나 컨트롤러를 변경하거나 뷰를 사용하여 통화 오류를 수정해야한다고 생각합니다. 경로. 나는 오류를 '처리'하는 것과는 대조적으로 다른 질문 (또는 다시 실행)에이 코드를 집중적으로 게시합니다. –