Pregunta

Estoy intentando acceder a un recurso de aplicación de los carriles de una API (se envía una solicitud GET application / xml) y me gustaría no tener que analizar el archivo XML.

En mis recursos controlador Tengo el siguiente:

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

que produce un archivo XML como se esperaba. Si lo cambio por:

render :layout => false

mi API informa de una "plantilla que falta" error. También he intentado lo siguiente:

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

Sin embargo, la página se representa de todos modos. ¿Cuál es la manera correcta de hacer esto?

¿Fue útil?

Solución

Al representar: xml, que no utiliza un diseño, ya que no utiliza ningún tipo de plantilla tampoco. Especificando: layout => false, le dice a los carriles para buscar una plantilla que no existe

.

Ahora, si usted no desea analizar un archivo XML, entonces usted tiene algunas alternativas. O bien:

render :json => @my_resource

o

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

Todo depende de cómo desea que el resultado a la mirada, lo que su API espera recibir. Así que si usted no encuentra nada de esto útil, dar un ejemplo de cómo desea que la respuesta a la mirada.

Otros consejos

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

Leer este artículo: http://tokumine.wordpress.com/2009/09/13/how-does-respond_to-work-in-the-rails-controllers/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top