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
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.
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
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.
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.
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.