ActiveRecord::StatementInvalid Nombre de columna no válido al representar xml y usar el método :include

Estoy usando Rails 2.3.4, Rubygems 1.8.24, Mac OS X Lion y Ruby 1.9.3.

Estoy tratando de representar xml en un objeto llamado factura. Ahora, asocié la factura con el detalle de la factura, por lo que en mi procesamiento: xml escribí:

format.xml  { render :xml => @invoice.to_xml(:include => :invoice_detail) }

pero ocurre un error: ActiveRecord::StatementInvalid Nombre de columna no válido 'invoice_id'

No tengo una columna de id de factura en mi base de datos, y ahora quiero que Rails lo entienda. Quiero que mire la columna de inventarioDocId en lugar de buscar una columna de id_factura que no existe. ¿Cómo puedo hacer eso? Muchas gracias.

preguntado el 22 de mayo de 12 a las 10:05

1 Respuestas

Cuando creó su modelo de factura_detalle, debe especificar la columna de clave externa:

class InvoiceDetail < ActiveRecord::Base
  belongs_to :invoice, :foreign_key => "inventoryDocId"
end

Tienes las opciones de Pertenece_a aquí: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

contestado el 22 de mayo de 12 a las 10:05

¿Intentaste reiniciar tu servidor? ¿Qué sucede si obtiene un detalle_de_factura y genera un detalle_de_factura.invoice.inspect - Sebastien

Sí, reinicié mi servidor. pero me pasa lo mismo :( lo siento pero no se como subir a bill_detail.invoice.inspect. Soy novato. ¿Hago eso en la consola? - Aldrín de la Cruz

en la consola, haces: factura_detalle = FacturaDetalle.todo.primero y después de factura_detalle.factura, te mostrará el detalle del modelo de factura. - Sebastien

¡Yo tengo que trabajar! ¡gracias! ahora mi problema es cómo renderizar xml usando curl y crear este tipo de asociación. Voy a publicar otra pregunta. ¡Gracias de nuevo! - Aldrín de la Cruz

Entonces, ¿cuál era tu problema? Da tu solución. - Sebastien

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.