Tuesday, October 25, 2011

Crear xml personalizado en Rails

En el controlador probablemente tienen lo siguiente:

def mi_accion
    @algos = Algo.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @algos }
    end
  end

El primer paso es sacar la información adicional que contiene el format.xml y dejarlo de esta manera:


def mi_accion
    @algos = Algo.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml
    end
  end

El segundo paso es crear un archivo nuevo en la sección Vistas (Views) con la extensión: .xml.builder
En este caso: mi_accion.xml.builder
y dentro de este archivo es donde podrán crear el xml a su gusto. Deben partir colocando xml.instruct! al inicio de su archivo. Puede tener una estructura como esta:

xml.instruct!
xml.algos do
  @algos.each do |algo|
     xml.algo
        xml.tipo algo.tipo
        xml.id algo.id
        xml.nombre algo.nombre
    end
  end
end

y generará algo como:

<algos>
  <algo>
   <tipo>0</tipo>
   <id>33</id>
   <nombre>Rafael</nombre>
  <algo>
</algos>

Recuerden siempre tener sólo un nodo raíz, de otra manera no se generará el archivo que buscan.

Bookmark and Share

No comments:

Related Posts Plugin for WordPress, Blogger...