2011-09-15 10 views
12

Encontré una publicación con un título bastante similar a este, pero no me dio la respuesta que estaba buscando. Estoy tratando de usar el constructor dentro de un modelo. El código es como la siguiente:NameError: constante no inicializada ActiveRecord :: Associations :: Builder :: XMLMarkup

require 'builder' 

class Document < ActiveRecord::Base 
... 
    def create_xml 
    xml = Builder::XmlMarkup.new(:indent => 2) 
    ... 
    end 
... 
end 

Cuando trato de ejecutar este código, me sale el siguiente error:

NameError: uninitialized constant ActiveRecord::Associations::Builder::XMLMarkup 

embargo, cuando intento lo mismo dentro de la consola rieles, todo funciona esta bien
¿Me falta algo? Cualquier ayuda sería muy apreciada.

Respuesta

37

Encontré la respuesta.

Tienes que añadir Builder para la Rootlevel, así:

xml = ::Builder::XmlMarkup.new(:indent => 2) 
+1

Gracias! ¿Tiene una explicación de por qué esto funciona? – elsurudo

+0

Ver la respuesta a esta publicación: http://stackoverflow.com/questions/10482772/rubys-double-colon-operator-usage-differences – klaffenboeck

Cuestiones relacionadas