Ayuda con belongs_to

23 views
Skip to first unread message

~Albert

unread,
May 24, 2012, 12:38:47 PM5/24/12
to kum...@googlegroups.com
Tengo dos modelos:
  1. Miembros
  2. Compras
La relación es: Un miembro puede tener muchas compras y una compra solo puede ser hecha por un miembro.

El problema es el siguiente:

En la tabla Miembros tengo un campo llamado: codigo, que es el identificador principal, no puedo usar un id auto-incrementado porque es un código generado de forma especial y necesito asociar este codigo a la tabla compras, pero para ello la función belongs_to utiliza como referencia los campos ID para relacionarlas, en el caso de la llave  foránea en la tabla Compras es personalizable en la función belongs_to, mi pregunta es si puedo también cambiar el campo al que hace referencia en la tabla Miembros ya que no es el ID, sino CODIGO.

¿Es posible cambiar el campo que hace de llave primaria en un modelo?

Muchas gracias!

Manuel Aguirre

unread,
May 24, 2012, 12:48:44 PM5/24/12
to kum...@googlegroups.com
si el campo codigo es clave primaria en el modelo Miembros, el modelo Compras al hacer la asociacion belogns_to hacia miembros, hará dicha asociacion hacia el primer campo con clave primaria del modelo miembros, y como en tu caso ese campo es el campo codigo, debe funcionar sin mayor problema...

De todas maneras has pruebas y nos cuentas como te va...

Suerte!!!

~Albert

unread,
May 24, 2012, 1:41:29 PM5/24/12
to kum...@googlegroups.com
Funciona!, pero ahora no se ejecuta el callback before_insert() antes si me funcionaba bien, no se que pasa.

Manuel Aguirre

unread,
May 24, 2012, 1:50:15 PM5/24/12
to kum...@googlegroups.com
creo que before_insert() no existe, es before_save() ó before_create().

~Albert

unread,
May 24, 2012, 1:56:28 PM5/24/12
to kum...@googlegroups.com
Si ya lo he comprobado, aunque en algunas páginas hacen referencia a before_insert() :S jeje

Gracias!

Manuel Aguirre

unread,
May 24, 2012, 1:57:02 PM5/24/12
to kum...@googlegroups.com
De nada hermano :-)
Reply all
Reply to author
Forward
0 new messages