2012-01-06 2 views
1

일반 Sinatra 앱과 일반 JSON API 부품이 있습니다. 내가 오류 블록 만들고 싶습니다 :Sinatra의 다양한 콘텐츠 유형에 대한 오류를보고합니다.

error do 
    # ... 
end 

형식으로 JSON을 반환 {: 오류 => "텍스트"} 경우 클라이언트는 헤더 세트 응용 프로그램/JSON에 동의 전송 다른 모든 경우에는 기본 Sinatra 동작을 유지합니다.

답변

1

당신은 조건부로 인수로 에러 블록 내에서 헤더 및 출력 선택을위한 도우미 메서드를 읽을 수 :

def content_to(output, type=nil) 
    case type 
    when "application/json" 
     #... 
    else 
     output 
    end... 

error do 
    content_to("Whoops!", header["Accept"]) 
end 
+0

그냥 내가 추가 거라고 생각 예를 들어

, 당신은 할 수 있습니다 내용 유형도 설정합니다. 'content_type : json'을 반환합니다. – iain

+0

준비된 헬퍼를위한 Sinatra :: RespondWith를보십시오. http://rubydoc.info/gems/sinatra-contrib/1.3.1/frames – iain

관련 문제