Forum: Rails-ES Varias relaciones entre dos clases

Posted by David Garcia (davidsgz)
on 2010-07-22 15:18
Buenas tardes a todos,

una duda que se me plantea en una aplicación que estoy implementando.
Tengo dos clases, Usuario y Concierto, en la que cada concierto está
creado por un usuario. Por lo tanto, en el modelo de concierto declaro
"belongs_to :user" y en el de usuario "has_many :concerts", y tendré un
método "concerts" que me devolverá todos los conciertos creados por ese
usuario. Sin embargo, si ahora quiero implementar otra relación,
asistencia, en la que un usuario puede asistir a muchos conciertos, y un
concierto puede tener muchos asistentes, es decir, una relación varios a
varios, y declaro en cada modelo la sentencia "has_and_belongs_to_many"
correspondiente, no se crearía otro método "concerts" que se solaparía
con el anterior?

Muchas gracias y perdón por el trabalenguas

Un saludo
Posted by Victor Cedeño (kw0lf)
on 2010-09-14 05:19
David Garcia wrote:
> Buenas tardes a todos,
> 
> una duda que se me plantea en una aplicación que estoy implementando.
> Tengo dos clases, Usuario y Concierto, en la que cada concierto está
> creado por un usuario. Por lo tanto, en el modelo de concierto declaro
> "belongs_to :user" y en el de usuario "has_many :concerts", y tendré un
> método "concerts" que me devolverá todos los conciertos creados por ese
> usuario. Sin embargo, si ahora quiero implementar otra relación,
> asistencia, en la que un usuario puede asistir a muchos conciertos, y un
> concierto puede tener muchos asistentes, es decir, una relación varios a
> varios, y declaro en cada modelo la sentencia "has_and_belongs_to_many"
> correspondiente, no se crearía otro método "concerts" que se solaparía
> con el anterior?
> 
> Muchas gracias y perdón por el trabalenguas
> 
> Un saludo

no creo que te sirva la relación habtm , porque seguramente en la tabla 
de unión  de asistencias por ejemplo, deberás guardar  el # de 
asistencias y con una relación habtm no podrás poner datos extras a las 
llaves foraneas.

Saludos.
Posted by Radhames Brito (rbritom)
on 2010-10-03 19:34
Debes usar la realcion tiene a traves de , o has_many through  asi
crear una table de conciertos otra de usuarios y una de asistencias, es 
muy facil. Si aun no sabes como me puedes preguntar
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.