Duda sobre ActiveRecord many to many

Buen día, primero que nada me presento, soy Omar J. Becerra
Ingeniero
en Sistemas de la UAG (Universidad autonoma de guadalajara)

pues la duda es esto supongamos que tenemos en el modelo las entidades (
Seguro, Beneficiarios)
Seguro tiene los datos del asegurado y algunos otros campos
Beneficiario son los que en caso de que aplique el seguro los beneficios
seran para ellos (trae los datos del beneficiario, asi como porcentaje
correspondiente al seguro)

se supone que por ahora un asegurado puede poner de 1 a 5 beneficiarios
(quizas esto cambie en un futuro no lo se)

entonces lo que yo me imaginaba era lo siguiente:
tabla seguro
tabla beneficiarios ( y aqui poner el seguro_id para ligar las dos
tablas)

seguro has_many :beneficiarios
beneficiario belongs_to :seguro

y esto funciona bien, pero teniendo en cuenta que se pueden comprar de 1
a 5
seguros
si compra 5 estaran 5 registros en la tabla seguros, y si puso 5
beneficiarios por seguro estaran 5 x 5 = 25 registros en la tabla
beneficiarios
de los cuales podrian ser algunas personas las mismas pero el porcentaje
y
parentesco con el asegurado podria cambiar, esto para no tener
informacion
“repetida”
y quizas ahorrarnos espacio y registros en la base de datos, entonces
por
ahi alguien me sugirio esto

tabla seguro
tabla beneficiario (solo datos de la persona como nombre, apellido)
tabla seguro_beneficiario ( parentezco del beneficiario, porcentaje del
beneficiario, id seguro, id beneficiario)

pero poniendo esos 2 campos en la tabla seguro_beneficiario para
accederlo
desde el modelo ??

en el modelo quedaria

seguro has_many :beneficiarios
beneficiarios has_and_belongs_to_many :seguros

pero al poner por ejemplo seguro = Seguro.find( x condicion)
para acceder a los datos del asegurado pues seguro.nombre
para acceder a los datos del beneficiario pues seria seguro.beneficiario
[].nombre
para acceder a los datos parentezco y porcentaje que estarian ligados al
beneficiario en si como accedo a ellos?

pues no se si sugieren otra solucion, o como ven, y si en caso que fuera
esta como accedo a esos campos

bueno creo que es todo, muchas gracias por su atencion

Reenvio el mensaje porque no se si lo mande bien la anterior vez, porfa
es
el primero que mando a la lista soy nuevo en esto me gustaria recibir
alguna
notificacion de que si esta llegando aunque no tengan tiempo no sepan
cual
es mi duda o no tengan respuesta solo para saber que si esta llegando y
pues
si pueden responder mi duda seria genial.

Buen día, primero que nada me presento, soy Omar J. Becerra
Ingeniero
en Sistemas de la UAG (Universidad autonoma de guadalajara)

pues la duda es esto supongamos que tenemos en el modelo las entidades (
Seguro, Beneficiarios)
Seguro tiene los datos del asegurado y algunos otros campos
Beneficiario son los que en caso de que aplique el seguro los beneficios
seran para ellos (trae los datos del beneficiario, asi como porcentaje
correspondiente al seguro)

se supone que por ahora un asegurado puede poner de 1 a 5 beneficiarios
(quizas esto cambie en un futuro no lo se)

entonces lo que yo me imaginaba era lo siguiente:
tabla seguro
tabla beneficiarios ( y aqui poner el seguro_id para ligar las dos
tablas)

seguro has_many :beneficiarios
beneficiario belongs_to :seguro

y esto funciona bien, pero teniendo en cuenta que se pueden comprar de 1
a 5
seguros
si compra 5 estaran 5 registros en la tabla seguros, y si puso 5
beneficiarios por seguro estaran 5 x 5 = 25 registros en la tabla
beneficiarios
de los cuales podrian ser algunas personas las mismas pero el porcentaje
y
parentesco con el asegurado podria cambiar, esto para no tener
informacion
“repetida”
y quizas ahorrarnos espacio y registros en la base de datos, entonces
por
ahi alguien me sugirio esto

tabla seguro
tabla beneficiario (solo datos de la persona como nombre, apellido)
tabla seguro_beneficiario ( parentezco del beneficiario, porcentaje del
beneficiario, id seguro, id beneficiario)

pero poniendo esos 2 campos en la tabla seguro_beneficiario para
accederlo
desde el modelo ??

en el modelo quedaria

seguro has_many :beneficiarios
beneficiarios has_and_belongs_to_many :seguros

pero al poner por ejemplo seguro = Seguro.find( x condicion)
para acceder a los datos del asegurado pues seguro.nombre
para acceder a los datos del beneficiario pues seria seguro.beneficiario
[].nombre
para acceder a los datos parentezco y porcentaje que estarian ligados al
beneficiario en si como accedo a ellos?

pues no se si sugieren otra solucion, o como ven, y si en caso que fuera
esta como accedo a esos campos

bueno creo que es todo, muchas gracias por su atencion

Omar J. wrote:

pero poniendo esos 2 campos en la tabla seguro_beneficiario para
accederlo
desde el modelo ??

en el modelo quedaria

seguro has_many :beneficiarios
beneficiarios has_and_belongs_to_many :seguros

Hola Omar,
Bienvenido !

http://rails.raaum.org/activerecord.html#many-to-many
http://wiki.rubyonrails.org/rails/pages/has_and_belongs_to_many
http://wiki.rubyonrails.com/rails/pages/ThroughAssociations

Espero te sirva.

Jaime Mora R.

si me sirve, me hechare un buen clavado en ThroughAssociations que ahi
se
resuelve mi duda
muchisimas gracias =D

2007/11/25, Jaime Mora R. [email protected]: