[Ror-es] Un campo de un modelo debe tener el valor del campo de otro modelo

Iñaki ibc2 at euskalnet.net
Wed Sep 13 18:58:52 GMT 2006


El Miércoles, 13 de Septiembre de 2006 02:52, Pedro Visintin escribió:
> Hola Iñaki:
>
> Tu modelo deberia ser algo asi:
>
> Class Cancion < ActiveRecord::Base
> belongs_to :artista, :foreign_key=>"artista"
> belongs_to :album, :foreign_key=>"album"
> end
>
> Class Artista < ActiveRecord::Base
> has_many :canciones, :foreign_key=>"artista"
> has_many :albums, :foreign_key=>"album"
> end
>
> Class Album < ActiveRecord::Base
> end
>
> corrijan si me olvide de algo
>
> Saludos


Hola. Gracias, pero le he probado y no hace nada. Es decir, entiendo que lo 
que propones es correcto, pero no estoy seguro de que debiera hacer lo que yo 
quiero:

Yo quiero que cuando la aplicación muestra una lista de canciones en los 
campos "artista" y "album" muestre el campo "name" de las tablas "artista" 
y "album" con el "id" correspondiente.

¿No habría que especificar eso en alguna parte?

Saludos.






> P
>
> On 9/12/06, Iñaki <ibc2 at euskalnet.net> wrote:
> > Hola, ante todo perdón por el asunto, no se me ocurre nada más
> > descriptivo.
> >
> > Resulta que tengo un modelo "Cancion" asociado a la tabla "canciones" con
> > los
> > siguientes campos (y pongo un ejemplo de entrada):
> >
> >   tabla "canciones"
> >
> >  
> > -------------------------------------------------------------------------
> >--------------- id     name             artista                  album
> >   82    Mi carro           5                          8
> >
> >  
> > -------------------------------------------------------------------------
> >---------------
> >
> > Y otros dos modelos "Artista" y "Album" asociados a las tablas "artistas"
> > y "albums":
> >
> >   tabla "artistas"
> >
> >  
> > -------------------------------------------------------------------------
> >--------------- id           name
> >   5           El Fary
> >
> >  
> > -------------------------------------------------------------------------
> >---------------
> >
> >   tabla "albums"
> >
> >  
> > -------------------------------------------------------------------------
> >--------------- id           name
> >   8           Grandes Exitos
> >
> >  
> > -------------------------------------------------------------------------
> >---------------
> >
> >
> > Pues bien, yo quiero que al hacer un "list" de las canciones el valor
> > del "artista" y "album" sea sustituido por los "name" de sus tablas
> > correspondientes. Es decir, aplicar algo así:
> >
> >    artist = Artista.find(cancion.artista).name
> >
> > El caso es que no tengo ni idea de dónde poner eso. Algo me dice que esto
> > debe
> > ir dentro del modelo, y no dentro del controlador, pero ni lo tengo muy
> > claro
> > ni mucho menos sé cómo ponerlo dentro del modelo.
> >
> > En principio, el listado esta hecho con un scaffold, así que la función
> > en el
> > controlador para la acción "list" sería la típica:
> >
> >   @cancion_pages, @cancion = paginate :cancion, :per_page => 10
> >
> >
> > ¿Alguien me puede orientar cómo debo añadir lo que me interesa?
> > Por si fuera necesario, aviso que sólo debe ser para lectura y no para
> > escritura. La aplicación web se limitará a listar los datos de una base
> > de datos sin modificarlos en absoluto.
> >
> >
> > Gracias y un saludo.
> >
> >
> >
> > --
> > Iñaki
> > _______________________________________________
> > Ror-es mailing list
> > Ror-es at lists.simplelogica.net
> > http://lists.simplelogica.net/mailman/listinfo/ror-es

-- 
Iñaki


More information about the Ror-es mailing list