有没有办法在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'})
答案 0 :(得分:1)
首先,您可以将显示数据后面的逻辑放入可以从GET
和PUT
路由调用的单独函数中。如果您真的想将处理传递到其他路线,可以使用机架call
方法进行处理:
put '/foo' do
# putting related stuff
call env.merge('REQUEST_METHOD' => 'GET')
end