1

Padrino で内部的にリダイレクトする方法はありますか? RESTful サービスを作成していますが、ブラウザ クライアントの HTML 応答はありません。リソースがありますxyz

MyApp.controllers :xyz

コントローラーに 2 つのルートがあります。

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

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

:showここで、ビュー (JSON ドキュメント) の作成を簡素化 (および一元化) するために、リソースの作成後にメソッドを処理するようにコントロールを内部的にリダイレクトしたいと考えています。したがって、サービスのクライアントの場合、 はPUT /xyz/1234新しいリソースを作成して同じものをGET /xyz/1234返し、存在する場合はリソースを返します。

get :show内部的に (クライアントに送信される 302 応答ではなく)メソッドからメソッドにリダイレクトする方法はありput :indexますか (リソースの作成後)? 何かのようなもの:

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

1 に答える 1

1

GETまず、表示データの背後にあるロジックを、とPUTルートの両方から呼び出すことができる別の関数に入れることができます。本当に別のルートに処理を渡したい場合は、rack のcallメソッドを使用して実行できます。

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