Forum: Rails-ES Dos relaciones con dos modelos

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A00eeb3d8a720b16fe029fbe3728c9f6?d=identicon&s=25 Mano (Guest)
on 2007-04-20 13:42
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.
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (Guest)
on 2007-04-20 13:50
(Received via mailing list)
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
A00eeb3d8a720b16fe029fbe3728c9f6?d=identicon&s=25 Mano (Guest)
on 2007-04-20 13:56
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 Noria 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
A6344ef7ef1e33e8efb34d99e6124490?d=identicon&s=25 Imobach González Sosa (Guest)
on 2007-04-20 14:05
(Received via mailing list)
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: http://www.banot.net/~osoh/
blog: http://devnull.blogs.banot.net/
A00eeb3d8a720b16fe029fbe3728c9f6?d=identicon&s=25 Mano (Guest)
on 2007-04-20 15:23
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: http://www.banot.net/~osoh/
> blog: http://devnull.blogs.banot.net/
51b840b74eacc1c32e31bfe412d542af?d=identicon&s=25 Sebastian Delmont (sdelmont)
on 2007-04-20 15:41
(Received via mailing list)
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
This topic is locked and can not be replied to.