2010-12-02 12 views
5

Ich versuche, von einer API auf eine Rails-App-Ressource zuzugreifen (sendet eine Application/XML GET-Anfrage), und ich möchte die XML nicht analysieren müssen Datei.Ruby-on-Rails: Hilfe mit render: layout => false

In meinen Ressourcen-Controller habe ich folgende:

def get_resource 
    @my_resource = Resources.new 
    render :xml => @my_resource 
end 

, die wie erwartet eine XML-Datei erzeugt. Wenn ich es ersetze:

render :layout => false 

meine API meldet einen Fehler "Vorlage fehlt". Ich habe auch folgendes versucht:

render :xml => @identity, :layout => false 

Aber die Seite rendert trotzdem. Was ist der richtige Weg?

Antwort

9

Wenn Sie: xml rendern, wird kein Layout verwendet, da auch keine Vorlage verwendet wird. Wenn Sie Folgendes angeben: layout => false, weisen Sie rails an, nach einer Vorlage zu suchen, die nicht existiert.

Wenn Sie jetzt keine XML-Datei analysieren möchten, haben Sie einige Alternativen. Entweder:

render :json => @my_resource 

oder

render :text => "My resource name is: #{@my_resource.name}" # Whatever you want 

Es hängt alles davon ab, wie Sie das Ergebnis aussehen soll, was Ihre API erwartet zu erhalten. Wenn Sie nichts hilfreiches finden, geben Sie ein Beispiel dafür, wie die Antwort aussehen soll.

+0

Dank das ist, was ich suchte. – David

+1

Es gibt auch immer 'render nothing: true' –

Verwandte Themen