Consejo con id's de las tablas

Para mi es bastante frecuente encontrarme con este problema, y por eso
os pido ayuda, no es que no lo haya podido salvar, pero creo que no es
la forma mas ortodoxa.

Tengo una tabla padre con un identificador (id)
Y varias tablas hijos con su propio didentificador (id) ademas del
indenficador de la tabla padre (padre_id).

Cuando quiero crear un nuevo padre y al tiemp los hijos que tiene,
primero tengo que conocer el identificador que asignara al padre lo que
significa salvar el registro y asi luego poder dar el dato a los hijos.

Conoceis alguna forma mas directa de solucionar el problema.

Pd: tengo q decir q habeces he hecho dos cosas:

  1. He creado los hijos con número ficticios que luego actualizo cuanod
    conozco el idenficador del padre, pero eso me obliga a otras historias
    con el fin de que la aplicacion sea multiusuario.
  2. Aveces he guardado el registro padre con los datos mínimos… solo
    con el fin de conocer el identificador y luego he acabado de rellenar
    los datos del padre y los hijos, pero me obliga a otras cosas q tampoco
    son limpias.

Bueno mucha gracias por leerme y sobre todo si me dais alguna idea.

Andres L. escribió:

Tengo una tabla padre con un identificador (id)
Y varias tablas hijos con su propio didentificador (id) ademas del
indenficador de la tabla padre (padre_id).

Cuando quiero crear un nuevo padre y al tiemp los hijos que tiene,
primero tengo que conocer el identificador que asignara al padre lo que
significa salvar el registro y asi luego poder dar el dato a los hijos.

Conoceis alguna forma mas directa de solucionar el problema.

No sé si te refieres a algo así:

padre = Padre.create(datos_del_padre)
padre.hijos.create(datos_del_hijo)

Pd: tengo q decir q habeces (…)

Argh, mis ojos!!! :stuck_out_tongue:

On Oct 19, 2007, at 2:01 PM, Andres L. wrote:

que
significa salvar el registro y asi luego poder dar el dato a los
hijos.

Recuerda que AR genera metodos para manejar las has_many, en
particular gestionan el seteo de los IDs por ti. Por ejemplo:

padre = Padre.new(…)
padre.hijos.build(…)
padre.hijos.build(…)
padre.save

Eso lo graba todo en cascada si todo valida (es necesario
validates_associated en el padre para que se validen los hijos tambien).

– fxn

Andres L. wrote:

Muchisimas gracias, he hecho algunas pruebas y funciona bastante bien,
jo es una pasada.

Es más o menos la misma duda que tuve yo hace poco, a mí me ayudó mucho
ver estos videos:

Muchisimas gracias, he hecho algunas pruebas y funciona bastante bien,
jo es una pasada.