2009-07-04 2 views
5

Rails 애플리케이션의 일부 리소스에 대한 컨텐츠 협상을 구현하려고합니다. 나는 Mootools를 사용하고 있으며 "application/json"으로 XMLHTTPRequest가 허용하는 컨텐트 유형을 조정할 수 있습니다.RESTful Content Rails 협상

내 컨트롤러에서이 정보를 찾아서 XHTML 대신 JSON 응답을 생성 할 수있는 방법이 있습니까? 나는이 같은 일을 방지하기 위해 노력하고있어

: 내 URL을 dirties로

http://site/resource/1?format=JSON 

...는 중복 어느 정도 부과하고 유연하지 않습니다.

감사합니다.

답변

4

는이 같은 컨트롤러 방법에 respond_to 연을 사용할 수 있습니다

respond_to do |format| 
    format.html { # Generate an HTML response... } 
    format.json { # Generate a JSON response... } 
end 

레일 클라이언트에 의해 제출 된 헤더를 수락 HTTP의 값에 따라 응답 형식을 결정합니다.

1

확실히 http://site/resource/1.json이 작동해야합니까? Rails 환경에서 설정해야 할 수도 있지만, 레일스 버전의 현재 버전에 따라 달라질 수 있습니다.

0

많은 연구 끝에 레일스가 출력을 위해 템플릿을 자동으로 선택하기 위해 모든 것을 갖추고 있지만 지원하려는 각각에 대해 respond_to을 호출해야합니다.

8

http://site/resource/1.json 콘텐츠 협상의 올바른 사용법이 아닙니다. 요점은 URL은 동일하게 유지되어야하지만 클라이언트는 요청과 함께 보내는 HTTP 헤더를 기반으로 특정 표현 (JSON, PDF, HTML 등)을 요청합니다.