2013-07-08 70 views
1

Padrino有內部重定向的方法嗎?我正在編寫一個RESTful服務,沒有瀏覽器客戶端的HTML響應。 我有一個資源,可以說,xyzPadrino的內部重定向

MyApp.controllers :xyz 

我有一個控制器兩條路由:

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

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

我們簡化(和集中)視圖(這是一個JSON文件)創建,我想只是在內部重定向控件,以便在創建資源後處理:show方法。因此,對於服務的客戶,PUT /xyz/1234將創建一個新資源並返回相同的資源,如果它存在,GET /xyz/1234將返回該資源。

有沒有一種方法來INTERNALLY(而不是一個302響應發送到客戶端)重定向到get :show方法從put :index方法(創建資源後)?喜歡的東西:

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

回答

1

的,你可以把邏輯數據表現爲單獨的功能,你可以從兩個GETPUT呼叫路由後面第一位。如果你真的想把處理轉移到不同的路線,你可以用機架的call方法來做:

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