Frage

Ich versuche, den Zugriff auf eine Rails-Anwendung Ressource von einer API (es sendet eine Anwendung / XML-GET-Request) und ich möchte nicht die XML-Datei analysieren müssen.

In meinem Ressourcencontroller ich habe folgende:

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

, die eine XML-Datei erzeugt, wie erwartet. Wenn ich ersetzen Sie es mit:

render :layout => false

meine API meldet eine „Vorlage fehlt“ Fehler. Ich habe auch die folgende versucht:

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

Aber die Seite macht sowieso. Was ist der richtige Weg, um dies zu realisieren?

War es hilfreich?

Lösung

Wenn Sie machen: xml, ist es nicht ein Layout verwenden, da es keine Vorlage entweder nicht verwendet. Durch die Angabe: layout => false, sagen Sie Schienen zu sehen für eine Vorlage, die nicht existiert

.

Nun, wenn Sie nicht wollen, eine XML-Datei zu analysieren, dann haben Sie ein paar 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 zu sehen möchten, was Ihre API zu erhalten erwartet. Also, wenn du nicht dieses nützlich finden, geben ein Beispiel, wie Sie die Antwort zu suchen.

Andere Tipps

def get_resource
  @my_resource = Resources.new
  respond_to do |wants|
    wants.xml { render :xml => @my_resource }
    wants.html { render :layout => false }
  end
end

Lesen Sie diesen Artikel: http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-in-the-rails-controllers/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top