2013-07-08 3 views
1

Padrino에서 내부 리디렉션하는 방법이 있습니까? 나는 브라우저 클라이언트의 HTML 응답이없는 RESTful 서비스를 작성 중이다. 리소스가 있습니다 (예 : xyz).Padrino에서 내부 리디렉션

MyApp.controllers :xyz 

내가 컨트롤러에 두 개의 경로가 있습니다

put :index, :with => :xyz_id do...end 

지금

get :show, :map => '/xyz/:xyz_id' do...end 

보기 (A JSON 문서가) 생성을 단순화 (및 중앙)하기를, 내가 원하는 리소스를 생성 한 후 :show 메서드를 처리하도록 컨트롤을 내부적으로 리디렉션합니다. 따라서 서비스 클라이언트의 경우 PUT /xyz/1234은 새 리소스를 만들고 동일한 리소스를 반환하고 GET /xyz/1234은 리소스를 반환합니다.

(리소스를 만든 후) put :index 메서드에서 get :show 메서드로 내부적으로 리디렉션 (클라이언트에 302 응답이 전송되지 않음) 방법을 리디렉션합니까? 같은 뭔가 :

redirect (:xyz, :index, {:xyz_id => '1234'}) 

답변

1

당신은 당신이 모두 GETPUT 경로에서 호출 할 수있는 별도의 기능에 보여주는 데이터 뒤에 논리를 넣을 수 있습니다, 첫째. 처리를 다른 경로로 전달하려면 랙의 call 메소드를 사용하여 처리 할 수 ​​있습니다.

put '/foo' do 
    # putting related stuff 
    call env.merge('REQUEST_METHOD' => 'GET') 
end