[Ror-es] Añadir un campo de otra tabla en un modelo?
Luis Villegas
luis.vilec at gmail.com
Wed Sep 27 14:44:18 GMT 2006
No leí correctamente lo que me pusiste en el mensaje y ya había escrito
otro. Con tu solución ahora me dice
Association named 'etapas' was not found; perhaps you misspelled it?
Ya me ha dejado completamente perdido....
---------- Forwarded message ----------
From: Luis Villegas <luis.vilec at gmail.com>
Date: Sep 27, 2006 4:43 PM
Subject: Re: [Ror-es] Añadir un campo de otra tabla en un modelo?
To: "La lista sobre Ruby On Rails (rubyonrails.com) en castellano" <
ror-es at lists.simplelogica.net>
Vaya lío nos estamos montando. Veamos...
El problema es que si pido @producto.etapas_productos , me devuelve la lista
con los datos que yo quiero pero sin ordenar por fase:
- #<EtapasProducto:0x39432cc @attributes={"etapa_id"=>"1",
"producto_id"=>"66", "lead_time"=>"2"}>,
- #<EtapasProducto:0x3943290 @attributes={"etapa_id"=>"2",
"producto_id"=>"66", "lead_time"=>"3"}>,
- #<EtapasProducto:0x3943254 @attributes={"etapa_id"=>"9",
"producto_id"=>"66", "lead_time"=>"4"}>,
- #<EtapasProducto:0x3943218 @attributes={"etapa_id"=>"11",
"producto_id"=>"66", "lead_time"=>"1"}>,
- #<EtapasProducto:0x39431dc @attributes={"etapa_id"=>"59",
"producto_id"=>"66", "lead_time"=>"2"}>
Y si pido pido @producto.etapas, me devuelve las etapas ordenadas, pero sin
el dato que yo quiero, que es el lead_time:
- #<Etapa:0x3922edc @attributes={"titulo"=>"pruebaa a",
"departamento_id"=>"4", "id"=>"59", "fase"=>"103"}>,
- #<Etapa:0x3922e50 @attributes={"titulo"=>"Emisi\363n de la Orden de
Producci\363n", "departamento_id"=>"1", "id"=>"1", "fase"=>"110"}>,
- #<Etapa:0x3922e14 @attributes={"titulo"=>"Emisi\363n del Pedido de
Compra", "departamento_id"=>"1", "id"=>"2", "fase"=>"120"}>,
- #<Etapa:0x3922d9c @attributes={"titulo"=>"Recepci\363n orden
producci\363n por Almac\351n", "departamento_id"=>"7", "id"=>"9",
"fase"=>"240"}>,
- #<Etapa:0x3922ce8 @attributes={"titulo"=>"Preparaci\363n Orden
Componentes", "departamento_id"=>"7", "id"=>"11", "fase"=>"315"}>
Como puedes ver, con la primera sentencia, vienen ordenadas por id y en la
segunda por fase.
Y con mis conocimientos rubyescos, no sé es cómo añadir al array "etapas" un
campo nuevo que sea "fases".
Seguro que es muy sencillo, pero no lo consigo.
On 9/27/06, Damian Janowski < damian.janowski at gmail.com> wrote:
>
> Ya estoy perdido :)
>
> A ver
>
> class Producto < ActiveRecord::Base
> has_many :etapas_productos, :include => :etapas, :order => '
> etapas.fase'
> has_many :etapas, :through => :etapas_productos, :order => :fase
> end
>
> Si eso funciona (?), entonces sólo quedaría pedir
> @producto.etapas_productos
>
>
>
> On 9/27/06, Luis Villegas < luis.vilec at gmail.com> wrote:
> > Me parece que me estoy explicando mal...
> >
> > Sí que funciona si pongo @productos.etapas. Recupera correctamente las
> > estapas asociadas a ese producto y ordenadas por fase, pero yo lo que
> quiero
> > es recuperar también información de la tabla que sirve de union.
> >
> > En concreto el campo lead_time que está en la tabla ETAPAS_PRODUCTOS y
> no en
> > la tabla ETAPAS
> >
> > Gracias
> >
> >
> > On 9/27/06, Damian Janowski < damian.janowski at gmail.com> wrote:
> > > Veo que la opción :order está puesta... no anda?
> > > Quizás probá esto:
> > > :order => 'fase'
> > > Es decir, un string en vez de un symbol.
> > >
> > > Si no,
> > >
> > > @productos.etapas.sort_by { |e| e.fase }
> > >
> > > On 9/27/06, Luis Villegas < luis.vilec at gmail.com> wrote:
> > > > Bueno, con eso recuperaría las fases asociadas a cada etapa.
> > > >
> > > > Lo que yo quiero realmente es que al recuperar las etapas asociadas
> al
> > producto, también se recupere la fase de cada etapa o al menos poder
> ordenar
> > cada etapa por su fase. Actualmente lo hago así, pero no me parece muy
> > elegante.
> > > >
> > > > query = "select fase, etapa_id,lead_time "
> > > > query << "from etapas e, etapas_productos ep "
> > > > query << "where e.id=etapa_id and ep.producto_id =? "
> > > > query << "order by fase"
> > > > @etapas_productos = EtapasProducto.find_by_sql
> > [query, at lote.producto_id]
> > > >
> > > > Muchas gracias por tu ayuda
> > > >
> > > > _______________________________________________
> > > > Ror-es mailing list
> > > > Ror-es at lists.simplelogica.net
> > > > http://lists.simplelogica.net/mailman/listinfo/ror-es
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Damian Janowski
> > > damian.janowski at gmail.com
> > > _______________________________________________
> > > Ror-es mailing list
> > > Ror-es at lists.simplelogica.net
> > > http://lists.simplelogica.net/mailman/listinfo/ror-es
> > >
> >
> >
> > _______________________________________________
> > Ror-es mailing list
> > Ror-es at lists.simplelogica.net
> > http://lists.simplelogica.net/mailman/listinfo/ror-es
> >
> >
> >
>
>
> --
> Damian Janowski
> damian.janowski at gmail.com
> _______________________________________________
> Ror-es mailing list
> Ror-es at lists.simplelogica.net
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20060927/3ce778c9/attachment.htm
More information about the Ror-es
mailing list