[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
>
>
>