Ayuda, pregunta de has_many?

Hola rail’s

tengo la siguiente situación y no se cómo resolverla:

  1. Tabla taxons (id y nombre)
  2. Tabla synonyms (taxon_id y synonym_id)

Las dos columnas de la tabla synonyms son llave externa de la tabla
taxons. De esta forma puedo almacenar los sinónimos existentes para un
taxon.

Mi problema es que no se cómo representar esto en rails.

Cualquier ayuda será bienvenida.

Muchas gracias.

Hola Ramon
Por lo que dices (si no lo he entendido mal), la estructura de tablas
tendría que ser así
Taxons (id, nombre)
Synonym (id, nombre)
taxons_synonym (id, taxon_id, synonym_id)

De esta manera relacionas en una tabla los taxons con sus sinónimos.

En los modelos tendrías que poner esto
Modelo Taxon
has_and_belongs_to_many :synonyms (o como se diga en plural)

Modelo Synonym
has_and_belongs_to_many :taxons

Tienes un pdf que explica las relaciones entre tablas en mi blog

Espero que te sirva, un saludo

Emili Parreño

Hola rail’s

tengo la siguiente situación y no se cómo resolverla:

  1. Tabla taxons (id y nombre)
  2. Tabla synonyms (taxon_id y synonym_id)

Las dos columnas de la tabla synonyms son llave externa de la tabla
taxons. De esta forma puedo almacenar los sinónimos existentes para un
taxon.

Mi problema es que no se cómo representar esto en rails.

Cualquier ayuda será bienvenida.

Muchas gracias.

Si tienes las columnas taxon_id y tsynonym_id y ambas se refieres a
Taxones
puedes hacer:

class Synonym < ActiveRecord::Base
belongs_to :taxon, :class_name => ‘Taxon’
belongs_to :tsynonym, :class_name => ‘Taxon’
end

Como ves, te he cambiado el nombre de la columna synonym_id para que no
haya
confusión, porque esa debería estar reservada para el id de la tabla
Synonym.

saludos,
Juanjo

----- Original Message -----
From: “Ramon Perez” [email protected]
To: [email protected]
Sent: Monday, October 30, 2006 2:36 PM
Subject: [Ror-es] Ayuda, pregunta de has_many?

Es un has_and_belongs_to_many entre taxones y taxones.

def Taxon < ActiveRecord::Base
has_and_belongs_to_many :synonyms,
:class_name => “Taxon”,
:join_table => “synonyms”,
:foreign_key => “taxon_id”,
:association_foreign_key => “synonym_id”


end

No estoy 100% seguro de los foreign keys… es posible que sea
necesario invertirlos, pero no tengo una tabla con datos para probarlo.