Padrino内部重定向

时间:2013-07-08 10:30:40

标签: ruby sinatra padrino

有没有办法在Padrino内部重定向?我正在编写一个RESTful服务,没有浏览器客户端的HTML响应。 我有一个资源,比方说,xyz

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将返回资源(如果存在)。

是否有办法通过get :show方法(创建资源后)将内部(不是发送给客户端的302响应)重定向到put :index方法?类似的东西:

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

1 个答案:

答案 0 :(得分:1)

首先,您可以将显示数据后面的逻辑放入可以从GETPUT路由调用的单独函数中。如果您真的想将处理传递到其他路线,可以使用机架call方法进行处理:

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