2010-03-16 2 views
1

저는 Rails의 신인이며 rails webpage의 튜토리얼을 따라 왔습니다. 내가 XML 요청하는 경우를 지원하기위한 추론을 볼 수Rails "new"액션에 XML 형식 지시문이있는 이유는 무엇입니까?

def new 
    @post = Post.new 

    respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @post } 
    end 
end 

:는 "포스트"모델을 만들기 위해 비계 명령을 사용하여 , 나는 컨트롤러의 new 조치가 XML 형식에 대한 특별한 지침을 가지고 있음을 발견 새 게시물을 만듭니다. /posts/new.xml을 검색하면 아무 것도 반환하지 않습니다. 이것의 목적은 무엇입니까?

답변

3

new 작업 뒤에있는 이유로 xml 클라이언트에 기본 데이터 (또는 원하는 경우 다른 데이터)를 제공하는 것입니다.

모든 경로에서 형식 지시문을 사용하고 있으므로 원할 때까지 형식을 지원하지 않아도됩니다.

respond_to do |format| 
    format.html # renders new.html.erb 
    format.xml { render :xml => {:message => "XML is not supported"} } 
    format.json { render :text => @post.to_json } 
    format.js # renders new.js.erb 
end 

는 또한이는 new 행동에 한정되지 않으며, 모든 행동에서 볼 수 있습니다 :

위의 코드

도처럼 보였다 수도있다. 사용할 형식은 url (라우트가 사용하도록 설정된 경우) 또는 브라우저가 보내는 HTTP-Accept 헤더에서 가져옵니다.

관련 문제