2011-01-28 7 views
6

Supongamos que tengo un método controlador como tal ...rieles - to_xml la colocación de los valores de los atributos XML y no etiquetas

def index 
    @burried_treasures = BurriedTreasure.all 
    render :xml => @burried_treasure 
end 

En este momento se coloca todos los valores en las etiquetas tales como:

<burried_treasure> 
    <name>Red Beard</name> 
</burried_treasure> 

I le gustaría usar atributos como este:

<burried_treasure name="Red Beard"> 

¿Alguien sabe cómo lograr esto?

Respuesta

5

Usted tendrá que reemplazar sus modelos to_xml método

class BurriedTreasure < ActiveRecord::Base 
    def to_xml(options = {}) 
     options[:indent] ||= 2 
     xml = options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent]) 
     xml.instruct! unless options[:skip_instruct] 
     xml.buried_treasure('name' => self.name) 
     xml.some_nodes do |some_node| 
      some_node.some_level2_node "some_level_2_node_content" 
     end 
    end 
    end 

Ver más información sobre el uso del constructor :: XmlMarkup en http://ap.rubyonrails.org/classes/Builder/XmlMarkup.html

+0

dado en el clavo, gracias :) – WoodenKitty

Cuestiones relacionadas