[Ror-es] Auto-relación simétrica
Jorge Alvarez
Tue Feb 14 17:13:57 GMT 2006
Sergio Gil Pérez de la Manga wrote:
> Ole los títulos raros ;)
>
> A ver, cuento lo que quiero hacer, lo que he conseguido, y a ver si a
> alguien se le ocurre cómo puedo completar la tarea.
>
> Tengo un modelo llamado Contact, que almacena contactos, y me gustaría
> poder relacionarlos unos con otros. Leyendo un poco por ahí [1], llego
> a lo siguiente:
>
> - Creo una tabla llamada contacts_contacts, con una columna llamada
> contact_id, y otra, por ejemplo, related_id.
> - En el modelo Contact:
>
> has_and_belongs_to_many :contacts, :foreign_key => "related_id"
>
> De esta forma se puede añadir un contacto como relacionado a otro, por
> ejemplo:
>
> un_contacto=Contact.find(1)
> otro_contacto=Contact.find(2)
> un_contacto.contacts << otro_contacto
> un_contacto.contacts[0].name # "El nombre de 'otro_contacto'"
>
> Perfecto.
>
> Sin embargo, la relación que pretendo modelizar no es padre-hijo, sino
> de igual a igual, de modo que sin hacer nada más, la relación quedara
> almacenada en ambos contactos, de manera que también pudiera hacer:
>
> otro_contacto.contacts[0].name # "El nombre de 'un_contacto'"
>
> Cosa que ahora mismo no sucede. ¿Se os ocurre alguna forma de hacerlo?
> Gracias :)
>
> --
> Sergio Gil Pérez de la Manga >
>------------------------------------------------------------------------
>
>_______________________________________________
>Ror-es mailing list
>
>
>