[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 19:01:01 GMT 2006


El Miércoles, 13 de Septiembre de 2006 12:54, Esteban Manchado Velázquez 
escribió:
> On Tue, Sep 12, 2006 at 09:52:26PM -0300, Pedro Visintin wrote:
> > 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
>
>     Bufff.... nunca creen relaciones que se apoyan en campos del mismo
> nombre. Si siguen la convención de añadir «_id» al final de los campos que
> son referencias, nunca tendrán este problema.

El problema es que no puedo modificar las tablas.



> > Class Artista < ActiveRecord::Base
> > has_many :canciones, :foreign_key=>"artista"
> > has_many :albums, :foreign_key=>"album"
> > end
>
>     Respondiendo a Iñaki, yo lo que haría sería hacer la consulta normal, y
> a la hora de mostrar los datos, en la vista, simplemente hacer:
>
>     <%= cancion.artista.nombre %>

Vale, pero ¿dónde harías eso? ¿en el modelo "canción"?
Sólo se me ocurre hacerlo en la vista, dentro del bucle que muestra la lista y 
para cada entrada crea un objeto "Cancion", pero eso me parecería un poco 
aberración contra la filosofía MVC, ¿no?

Saludos.

-- 
Iñaki


More information about the Ror-es mailing list