2016-07-29 2 views
0

レールコントローラのアクションで別のurlにリダイレクトしたいと思います。 likerails_apiアプリケーションのみでredirect_toに代わる方法はありますか?

def action_name 
    redirect_to url 
end 

私は単純に上記の方法を使用することができます知っています。しかし、私はすべてのアプリケーションで1つのアクションだけをリダイレクトしたい。このため、私はこれをコントローラーに含めたくありません。

include ActionController::Redirecting 

apiアプリケーションのみでリダイレクトする方法はありますか?ありがとう。

+0

レンダ302ステータスとロケーションヘッダー? –

答えて

0

respond_withを使用すると、要求タイプとrespond_withに渡すモデルのステータスに応じて適切な応答を返すことができます。

def create 
    @thing = Thing.create(thing_params) 
    respond_with(@thing) 
end 

検証が失敗した場合、要求が成功したと422 - Unprocessable Entityである場合、これは201 - Createdステータスおよび位置ヘッダーを与えます。

代わりにheadsend a header only responseを使用できます。

def action_name 
    head :not_found, location: url 
end 

:not_foundには、任意の適切なHTTPステータスを使用できます。

+0

'respond_with'はあなたが[responders gem](https://github.com/plataformatec/responders)を追加するとさらに強力です。 – max

関連する問題