Dos relaciones con dos modelos

Buenas,

Tengo una base de datos en la que tengo dos tablas con dos relaciones,
una de m a n y otra de 1 a n.

No tengo ni idea de como representar esto en ROR,

alguien me podría echar una mano? Como puedo asociar los modelos y lo
identificarlos?

Saludos.

On Apr 20, 2007, at 1:42 PM, Mano wrote:

Buenas,

Tengo una base de datos en la que tengo dos tablas con dos relaciones,
una de m a n y otra de 1 a n.

No tengo ni idea de como representar esto en ROR,

alguien me podría echar una mano? Como puedo asociar los modelos y lo
identificarlos?

Podrias explicarlo un poco mas? Que modelos son y que relaciones hay
entre ellos usando nombres?

– fxn

Buenas,

Podríamos tener en la base de datos dos tablas, una de personas y otras
de casas. Estas tablas podrían tener dos relaciones, una para
representar el alquiler y otra para representar la propiedad.

La relación de propiedad sería 1 a n si suponemos que una casa sólo
puede ser de una persona.
La relación de alquiler sería m a n si suponemos que la casa la pueden
tener varias personas alquilada.

Xavier N. wrote:

On Apr 20, 2007, at 1:42 PM, Mano wrote:

Buenas,

Tengo una base de datos en la que tengo dos tablas con dos relaciones,
una de m a n y otra de 1 a n.

No tengo ni idea de como representar esto en ROR,

alguien me podr�a echar una mano? Como puedo asociar los modelos y lo
identificarlos?

Podrias explicarlo un poco mas? Que modelos son y que relaciones hay
entre ellos usando nombres?

– fxn

Es simplemente un caso que se me ha ocurrido haciendo pruebas, y la
verdad es que no se, aun pensando en objetos, como quitas las dos
relaciones.

Saludos.

Imobach González Sosa wrote:

On Friday 20 April 2007 12:42:20 Mano wrote:

Buenas,

Tengo una base de datos en la que tengo dos tablas con dos relaciones,
una de m a n y otra de 1 a n.

No tengo ni idea de como representar esto en ROR,

¿Es una base de datos “heredada” o la estás haciendo tú desde cero? Si
se
trata de la segunda opción, te diré lo que digo siempre en estos casos
(aún a
riesgo de repetirme): piensa y diseña SIEMPRE a nivel de clases
(modelos) y,
después, traduces eso a las tablas (lo que debería ser un paso
mecánico).

Si es una base de datos heredada, pues deberías tener un modelo por cada
tabla
y usar los métodos “belongs_to”, “has_and_belongs_to_many” y “has_many”
para
las relaciones. Además, necesitarás una tabla intermedia para la
relación
m-n. Investiga en esa línea.

Saludos.


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: banot.net - banot Resources and Information.
blog: http://devnull.blogs.banot.net/

On Friday 20 April 2007 12:42:20 Mano wrote:

Buenas,

Tengo una base de datos en la que tengo dos tablas con dos relaciones,
una de m a n y otra de 1 a n.

No tengo ni idea de como representar esto en ROR,

¿Es una base de datos “heredada” o la estás haciendo tú desde cero? Si
se
trata de la segunda opción, te diré lo que digo siempre en estos casos
(aún a
riesgo de repetirme): piensa y diseña SIEMPRE a nivel de clases
(modelos) y,
después, traduces eso a las tablas (lo que debería ser un paso
mecánico).

Si es una base de datos heredada, pues deberías tener un modelo por cada
tabla
y usar los métodos “belongs_to”, “has_and_belongs_to_many” y “has_many”
para
las relaciones. Además, necesitarás una tabla intermedia para la
relación
m-n. Investiga en esa línea.

Saludos.


Imobach González Sosa
correo-e: imobachgs en banot punto net
jabber id: osoh en jabberes punto org
web: banot.net - banot Resources and Information.
blog: http://devnull.blogs.banot.net/

Como dirian los gringos: RTFM.

Los metodos para definir relaciones (has_many, belongs_to, etc) todos
tienen parametros especiales para indicar que campo de la tabla usar
como referencia, que clase utilizar para los objetos, etc, etc.

Asi que puedes hacer algo como:

class Persona
has_many :propiedades, :class_name => “Casa”, :foreign_key =>
“propietario_id”
end

class Casa
belongs_to :propietario, :class_name => “Persona”, :foreign_key =>
“propietario_id”
end