I가 약간의 '오류'에 대한 HTTP 상태를 잡을 오류 페이지로 사용자 리디렉션 할 다음 라우팅 규칙 :네임 스페이스 "오류 페이지"
%w[403 404 422 500 503].each do |code|
match code, to: 'errors#show', code: code, via: :all
end
나는 또한 루트 네임 스페이스가와 또 다른 하나는 'admin'입니다. 나는 관리자 네임 스페이스에 대한이 같은 길을 매칭 작업을하고 싶습니다, 그래서 그것을 동일한 라우팅 규칙을 추가 :
namespace :admin do
%w[403 404 422 500 503].each do |code|
match code, to: 'errors#show', code: code, via: :all
end
end
문제 : 그것은 작동하지 않고 모두 403 개 요청을 리디렉션되고있다 /admin/403 대신 /403으로 변경하십시오. 이 목표를 달성 할 수있는 방법이 있습니까?
나는 내가 응용 프로그램 레이아웃 또한 관리자 레이아웃을 보여 오류 페이지 다른 레이아웃를 사용할 필요가 있기 때문에 이런 식으로하고 싶지.
당신이 사용하는 레일을 말할 필요가 DRY 설정의 이상으로 모두 오류 컨트롤러 사이의 DUP 코드를 이동 "우려"로 봐 당신의 라우트를 예외 어플리케이션으로 사용하려면'config.exceptions_app = self.routes'를'config/application.rb'에 추가하십시오. https://mattbrictson.com/dynamic-rails-error-pages – max
나는 나 자신을 아주 잘 설명하지 않았다. 벌써 했어. 라우팅은 작동하지만 루트 네임 스페이스에 대해서만 작동합니다. 네임 스페이스 admin에서는 작동하지 않습니다. – RafaelTSCS
나는 이것이 가능하다고 생각하지 않는다. Rails는 하나의 예외 앱만을 호출하며 실제로 네임 스페이스에 대한 아이디어에 매핑되지 않습니다. 레일즈가 예외를 처리 할 때 그것이 네임 스페이스에서 발생했는지 상관하지 않습니다. – max