RXML templates sin layout

Hola a todos,

Tengo una aplicación REST con un método en el controlador así:
def index
@sdrs = Sdr.find(:all)
respond_to do |format|
format.html
format.xml
end
end

Mi plantilla RXML está bien construída, pero cuando ejecuto la petición
con XML, el resultado está rodeado por el layout HTML de la aplicación,
algo así como:

  • Sdrs: index
  • <?xml version="1.0" encoding="UTF-8" ?>

  • 693710000 62238000

¿Cómo podría solucionarlo? Porque con un render :layout=>false no
funciona.
Gracias.

Hola Damaris, creo que te falto un pequeño ingrediente:
def index
@sdrs = Sdr.find(:all)
respond_to do |format|
format.html
format.xml {render :xml => @categorias}
end
end

Saludos.
El día 6/01/08, Damaris F. [email protected]
escribió:

Um…no :D,
vamos, en principio al poner sólo format.xml coge directamente la
plantilla RXML.

Esta plantilla es así:
xml.instruct!
xml.sdrs do
for sdr in @sdrs
xml.sdr do
xml.miliseg_ini(sdr.miliseg_ini)
xml.miliseg_fin(sdr.miliseg_fin)
end
end
end

Y efectivamente los datos los saca bien, pero ya digo que los rodea con
el código HTML del layout de la aplicación.

No entiendo lo que quieres decir :frowning:
En la vista tengo un index.rhtml que sale bien, y el index.rxml.
Dependiendo de cómo haga la petición REST, pues me devuelve una u otra.
Pero el XML me devuelve no solo el xml sino html por arriba y por abajo
(también con curl)

Una posibilidad es que tengas una sola vista action.rxml y no estes
disparando el format.xml. Si es el caso sucede que entra por
format.html, y echa action.rxml con el layout.

Sabras si lo tienes bien programado probando por ejemplo con curl:

curl -H 'Accept: text/xml' http://localhost:3000/

O es que quieres servir lo mismo si te piden html?

– fxn

On Jan 6, 2008, at 6:37 PM, Damaris F. wrote:

No entiendo lo que quieres decir :frowning:
En la vista tengo un index.rhtml que sale bien, y el index.rxml.
Dependiendo de cómo haga la petición REST, pues me devuelve una u
otra.
Pero el XML me devuelve no solo el xml sino html por arriba y por
abajo
(también con curl)

Sin mas informacion no se que puede suceder, pero si sirve de algo
para que el layout no salga no hay que hacer nada. Si sale debe ser
que hay algun detalle añadido que se escapa.

Tienes alguna macro “layout” en el controlador por ejemplo?

– fxn

On Jan 6, 2008, at 5:01 PM, Damaris F. wrote:

end
end
end

Y efectivamente los datos los saca bien, pero ya digo que los rodea
con
el código HTML del layout de la aplicación.

Una posibilidad es que tengas una sola vista action.rxml y no estes
disparando el format.xml. Si es el caso sucede que entra por
format.html, y echa action.rxml con el layout.

Sabras si lo tienes bien programado probando por ejemplo con curl:

curl -H 'Accept: text/xml' http://localhost:3000/

O es que quieres servir lo mismo si te piden html?

– fxn

Resuelto (me lo han chivado en el foro de habla inglesa)

Una solución es poner en el controlador:

exempt_from_layout :rxml

Porque por defecto sí se puede aplicar el layout a otros arhcivos que no
sean html, como este XML (http://dev.rubyonrails.org/ticket/7682).

Gracias!

On Jan 6, 2008, at 8:49 PM, Damaris F. wrote:

Resuelto (me lo han chivado en el foro de habla inglesa)

Una solución es poner en el controlador:

exempt_from_layout :rxml

Porque por defecto sí se puede aplicar el layout a otros arhcivos
que no
sean html, como este XML (http://dev.rubyonrails.org/ticket/7682).

Hum, no lo pude reproducir, quiza cambio entonces.