ActiveRecord::StatementInvalid Nombre de columna no válido al representar xml y usar el método :include
Frecuentes
Visto 310 veces
0
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.
1 Respuestas
1
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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby-on-rails xml activerecord or haz tu propia pregunta.
¿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