2010-12-02 17 views
5

Estoy intentando acceder a un recurso de aplicación de rieles desde una API (envía una solicitud GET de aplicación/XML) y me gustaría no tener que analizar el XML archivo.Ruby-on-Rails: Ayuda con render: layout => false

En mi controlador de recursos que tienen la siguiente:

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

que produce un archivo XML como se esperaba. Si lo reemplazo con:

render :layout => false 

mi API informa un error de "plantilla faltante". También intenté lo siguiente:

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

Pero la página se representa de todos modos. ¿Cuál es la forma correcta de hacerlo?

Respuesta

9

Cuando renderiza: xml, no usa un diseño porque tampoco usa ninguna plantilla. Al especificar: layout => false, le dice a los rieles que busquen una plantilla que no existe.

Ahora, si no quiere analizar un archivo xml, entonces 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 se vea, lo que su API espera recibir. Entonces, si no encuentra nada de esto útil, dé un ejemplo de cómo desea que se vea la respuesta.

+0

Gracias esto es lo que estaba buscando. – David

+1

También siempre hay 'render nothing: true' –

Cuestiones relacionadas