2016-07-29 14 views
0

Ich möchte auf eine andere url in Schienen Controller Aktion umleiten. wieGibt es eine Alternative zu redirect_to in Rails api nur Anwendung?

def action_name 
    redirect_to url 
end 

Ich weiß, ich kann es einfach mit der oben genannten Methode tun. Aber ich möchte in nur einer Aktion in meiner gesamten Anwendung umleiten. Aus diesem Grund möchte ich dies nicht in den Controller aufnehmen.

include ActionController::Redirecting 

gibt es eine andere Möglichkeit, um eine URI in api nur Anwendungen umleiten. Vielen Dank.

+0

render 302-Status und die Location-Kopfzeile? –

Antwort

0

Sie können respond_with verwenden, die je nach Anforderungstyp und Status des Modells, das Sie an respond_with übergeben, mit einer entsprechenden Antwort antworten.

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

Dies wird 201 - Created Status und einen Location-Header geben, wenn die die Anforderung erfolgreich ist und ein 422 - Unprocessable Entity wenn die Validierungen fehlschlagen.

Alternativ können Sie head zu send a header only response ohne Körper verwenden.

def action_name 
    head :not_found, location: url 
end 

Beachten Sie, dass :not_found jede geeignete HTTP-Status sein könnte.

+0

'respond_with' ist noch leistungsfähiger, wenn Sie das [Responder-Juwel] (https://github.com/plataformatec/responders) hinzufügen. – max