Enlazar formularios

hola!

Soy otro principiante mas en esto del ruby y tengo una duda de esas que
pareceran tontisimas pero que no consigo resolver.

tengo dos modelos: dog y human

dog

has_one :human

human

belongs_to :dog

Es una aplicacion donde el que importa es la mascota de hay el has_one
:human.
He creado en la tabla humen un dog_id que se supone sera la foreign key
relacionada al humano.

La pregunta es como puedo hacer para que una vez rellenado el formulario
con los datos del perro pueda hacer los mismo con los del humano y este
coja la id del perro.

Se que se ha hablado de cosas parecidas por aqui, pero todo lo que
encuentro se keda en el has_one, belongs_to etc . Cualquier ayuda sera
bien recibida

On Oct 17, 2007, at 12:00 PM, Javi J. wrote:

La pregunta es como puedo hacer para que una vez rellenado el
formulario
con los datos del perro pueda hacer los mismo con los del humano y
este
coja la id del perro.

Echale un vistazo a la documentacion de has_one, esa “declaracion”
crea Dog#(build|create)_human que permiten enlazar los modelos
directamente. Si necesitas validacion en cascada mirate
validates_associated.

– fxn

Xavier N. wrote:

On Oct 17, 2007, at 12:00 PM, Javi J. wrote:

La pregunta es como puedo hacer para que una vez rellenado el
formulario
con los datos del perro pueda hacer los mismo con los del humano y
este
coja la id del perro.

Echale un vistazo a la documentacion de has_one, esa “declaracion”
crea Dog#(build|create)_human que permiten enlazar los modelos
directamente. Si necesitas validacion en cascada mirate
validates_associated.

– fxn

Gracias Xavier,

He estado mirando la documentacion que dices y es mas de lo mismo. Esta
claro que quedan enlazados y se crean diversos metodos. Perso sigo sin
poder enlazar el formulario de uno con el de otro :S

On 17/10/2007, Javi J. [email protected] wrote:

Xavier N. wrote:

On Oct 17, 2007, at 12:00 PM, Javi J. wrote:

He estado mirando la documentacion que dices y es mas de lo mismo. Esta
claro que quedan enlazados y se crean diversos metodos. Perso sigo sin
poder enlazar el formulario de uno con el de otro :S

Si te estoy entendiendo bien, lo que tienes que hacer es salvar al
perro, meter su id en sesión y hacer un redirect_to a /humans/9

Ahí lees el dog_id de session y lo metes en un hidden para usarlo en
/humans/create, buscando el Dog correspondiente y asociando.


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

On 17/10/2007, Xavier N. [email protected] wrote:

porque una aplicacion web cuanto mas stateless mejor.

Yo diría incluso que cuanto más tasteless, mejor :slight_smile:


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

On Oct 17, 2007, at 1:29 PM, Javi J. wrote:

He estado mirando la documentacion que dices y es mas de lo mismo.
Esta
claro que quedan enlazados y se crean diversos metodos. Perso sigo sin
poder enlazar el formulario de uno con el de otro :S

Si tienes dos formularios separados entonces se trata de un problema
de estado entre peticiones: necesitas pasar el dog.id de algun modo.

Para ello ya sabes, o bien lo metes en sesion o bien como campo
oculto en form de human. Yo prefiero el ultimo si me es posible
verificar que el dog.id no es invalido (por ejemplo que pertenezca al
current_user, me da igual si era el original mientras se cumpla eso)
porque una aplicacion web cuanto mas stateless mejor.

Es al instanciar el dog en la segunda accion que puedes usar la API
de AR para has_ones.

– fxn

Xavier N. wrote:

On Oct 17, 2007, at 1:29 PM, Javi J. wrote:
Si tienes dos formularios separados entonces se trata de un problema
de estado entre peticiones: necesitas pasar el dog.id de algun modo.

Para ello ya sabes, o bien lo metes en sesion o bien como campo
oculto en form de human. Yo prefiero el ultimo si me es posible
verificar que el dog.id no es invalido (por ejemplo que pertenezca al
current_user, me da igual si era el original mientras se cumpla eso)
porque una aplicacion web cuanto mas stateless mejor.

Es al instanciar el dog en la segunda accion que puedes usar la API
de AR para has_ones.

Muchas gracias, voy a probar a ver que tal!

Manuel González Noriega wrote:

On 17/10/2007, Manuel Gonzᬥz Noriega
[email protected] wrote:

perro, meter su id en sesió® ¹ hacer un redirect_to a /humans/9

Releyendo veo que escribí ¦quot;9" por “new” :?

/humans/new


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.

:slight_smile: ya imaginé. Gracias, este foro es genial. nunca me contestaron tan
rapido y preciso

On 17/10/2007, Manuel González Noriega
[email protected] wrote:

perro, meter su id en sesión y hacer un redirect_to a /humans/9

Releyendo veo que escribí “9” por “new” :?

/humans/new


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o http://simplelogica.net/logicola/
Recuerda comer mucha fruta y verdura.