1

有没有办法在帕德里诺内部重定向?我正在编写一个 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该资源,如果该资源存在则返回该资源。

有没有办法在内部(不是发送给客户端的 302 响应)get :show从方法重定向到put :index方法(在创建资源之后)?就像是:

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

1 回答 1

1

首先,您可以将显示数据背后的逻辑放入单独的函数中,您可以从GETPUT路由中调用该函数。如果你真的想将处理传递给不同的路由,你可以使用 rack 的call方法:

put '/foo' do
  # putting related stuff
  call env.merge('REQUEST_METHOD' => 'GET')
end
于 2013-07-08T18:35:25.757 回答