[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 00:04:00 GMT 2006


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


More information about the Ror-es mailing list