2012-12-11 2 views
2

나는 이전 개발자가 응용 프로그램 컨트롤러에이 추가 프로젝트를 상속. 정적 페이지는 받아 들일 수 없지만, 왜 그런지는 확신 할 수 없습니다. 어쨌든 이것은 예외적으로 예외를 포착 할 수있는 능력을 엉망으로 만든다. 동적 오류 페이지가 렌더링 된 후에 예외를 다시 발생시킬 수있는 방법이 있습니까?레일 rescue_from 다시 올립니다 예외

def rescue_from(exception) 
    respond_to |format| 
    format.html { #render the page# } 
    end 
    raise exception 
end 

그러나, 그것은 매우 분명 작동하지 않습니다

나는이 시도했다. 어떤 아이디어?

답변

6

수동으로 예외에 게시 할 수 있습니다. 다시 올리기를 시도하고 예외적으로 잡히고 게시하려고 시도 할 수 없습니다.

def rescue_from(exception) 
    ::Exceptional::Catcher.handle(exception) 
    respond_to |format| 
    format.html { #render the page# } 
    end 
end 
+2

나는 비슷한 말을하기 위해 고쳤다. :). –

+1

이 작품! 감사합니다 제시! 앞으로이 문제를 겪는 사람은 개발 환경에서 Exceptional을 활성화해야합니다. 그렇지 않으면 작동하지 않습니다. –

1

시작 또는 구조에서 예외 발생을 수행하고 respond_to를 확실히 수행 할 수 있습니까?

나는 아래의 b)를 제공하고 있는데, 그 이유는 a)가 잘 작동하지 않을 것이기 때문입니다. 분명히 b) 예제에서 구조 블록으로 들어가서 전달 된 예외를 발생시키는 예외를 발생시킬 수 있습니다.

다음 중 하나를

A)

begin 
raise exception 
ensure 
    respond_to |format| 
    format.html { #render the page } 
    end 
end 

또는

B)는이 같은

begin 
    raise exception 
rescue Exception => e 
    raise e 
ensure 
    respond_to |format| 
    format.html { #render the page } 
    end 
end 
+0

멋진 시도 였지만 불행히도 작동하지 않았습니다. –

0

뭔가 일을해야 -

rescue_from Exception, :with => :render_500 

def rescue_500(exception) 
    raise exception 
end 

docs을 사용해보십시오. 그래도 문제가 해결되지 않으면 해결 방법을 찾는 데 도움이됩니다.

+0

질문을 신중하게 읽지 않는 실수. 즉, 많은 사람들이 문서를 읽지 않으며 그 방향으로 그들을 가르키는 것이 도움이된다고합니다. –

+0

걱정할 필요가 없습니다. 응답 해 주셔서 감사합니다. 건배! –

관련 문제