Cómo combinar diferentes modelos en un solo formulario

20 views
Skip to first unread message

Matias Mascazzini

unread,
Feb 24, 2017, 5:24:33 PM2/24/17
to rubysur
Hola,
me toca combinar varios modelos en un solo formulario largo. La consulta es: ¿De qué manera me recomiendan hacerlo? es decir que los datos se guardaran en 3 modelos distintos.


Tengo 3 modelos: postulantes, empresas y postulaciones, cada uno con sus datos particulares. Los postulantes se postulan para trabajar en una empresa según cierta modalidad de contrato que figura en la postulación.

Tengo armado ya los CRUD para cada uno de los modelos con su formulario de alta, pero ahora el cliente quiere cargar todo en un solo formulario.





Saludos
Matías Mascazzini
keep in touch about.me/matiasmasca


Gabriel Balbuena

unread,
Feb 24, 2017, 5:27:39 PM2/24/17
to rub...@googlegroups.com
Hola


Sería un approach

Saludos

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
--
Gabriel Balbuena

Johan Tique

unread,
Feb 24, 2017, 5:31:39 PM2/24/17
to rub...@googlegroups.com
Hola Martín

Dependiendo de las reglas de negocio del formulario y los tres modelos podrías entre otras cosas solucionarlo de las siguientes formas:


1. Si los modelos están asociadoas a través de alguna relación puedes usar nested attributes, fields_for o simple_fields_for (si usas simple form)... recuerda que debes tener la opcion de accepts_nested_attributes_for habilitatada en tus modelos.

2. puedes usar una estrategia de form activo en rails, hacer un PORO con "esteroides" usando active_attributes o virtus + active_model y hacer una representacion de lo que mas te convenga, lo bueno de esto es que puedes genrar reglas de negoio flexibles o validaciones sin impactar ningun modelo, solo lo persistirias hasta que estes seguro de que es lo que quieres, lo malo es que te sales un poco del stack de rails y tal vez algunas cosas te tocaria hacerlas manuales.

Saludos.

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Johan Tique Ramírez
IEEE Young Professional Member
SSO IEEE Member
Co-Fouder at Analisistem
Researcher at GIT
Electronic and Telecommunications Engineer
Unicauca

Emanuel Friedrich

unread,
Feb 24, 2017, 5:35:57 PM2/24/17
to rub...@googlegroups.com
La de Gabriel es la posta me parece Mati. 

Juan Matías

unread,
Feb 25, 2017, 7:05:05 AM2/25/17
to rub...@googlegroups.com
Yo voto por el segundo punto de Martin, la idea de que un objeto presente a varios me parece mas cómoda a la hora de validar la entrada y tomar decisiones. Ese objeto seria mas plano y evitarías anidar atributos.

Saludos!
On Fri, 24 Feb 2017 at 23:35, Emanuel Friedrich <aemanuel...@gmail.com> wrote:
La de Gabriel es la posta me parece Mati. 

El feb. 24, 2017 7:31 PM, "Johan Tique" <johan...@gmail.com> escribió:
Hola Martín

Dependiendo de las reglas de negocio del formulario y los tres modelos podrías entre otras cosas solucionarlo de las siguientes formas:


1. Si los modelos están asociadoas a través de alguna relación puedes usar nested attributes, fields_for o simple_fields_for (si usas simple form)... recuerda que debes tener la opcion de accepts_nested_attributes_for habilitatada en tus modelos.

2. puedes usar una estrategia de form activo en rails, hacer un PORO con "esteroides" usando active_attributes o virtus + active_model y hacer una representacion de lo que mas te convenga, lo bueno de esto es que puedes genrar reglas de negoio flexibles o validaciones sin impactar ningun modelo, solo lo persistirias hasta que estes seguro de que es lo que quieres, lo malo es que te sales un poco del stack de rails y tal vez algunas cosas te tocaria hacerlas manuales.

Saludos.
2017-02-24 17:24 GMT-05:00 Matias Mascazzini <matia...@gmail.com>:
Hola,
me toca combinar varios modelos en un solo formulario largo. La consulta es: ¿De qué manera me recomiendan hacerlo? es decir que los datos se guardaran en 3 modelos distintos.


Tengo 3 modelos: postulantes, empresas y postulaciones, cada uno con sus datos particulares. Los postulantes se postulan para trabajar en una empresa según cierta modalidad de contrato que figura en la postulación.

Tengo armado ya los CRUD para cada uno de los modelos con su formulario de alta, pero ahora el cliente quiere cargar todo en un solo formulario.





Saludos
Matías Mascazzini
keep in touch about.me/matiasmasca


--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Johan Tique Ramírez
IEEE Young Professional Member
SSO IEEE Member
Co-Fouder at Analisistem
Researcher at GIT
Electronic and Telecommunications Engineer
Unicauca

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.

Matias Mascazzini

unread,
Feb 25, 2017, 10:27:46 AM2/25/17
to rubysur
Muchas gracias por sus respuestas, voy a investigar esos 2 caminos.

Saludos
Matías Mascazzini
keep in touch about.me/matiasmasca

---
Le recomiendo visitar: www.ComunidadTIC.com.ar

2017-02-25 9:04 GMT-03:00 Juan Matías <jmre...@gmail.com>:
Yo voto por el segundo punto de Martin, la idea de que un objeto presente a varios me parece mas cómoda a la hora de validar la entrada y tomar decisiones. Ese objeto seria mas plano y evitarías anidar atributos.

Saludos!
On Fri, 24 Feb 2017 at 23:35, Emanuel Friedrich <aemanuel...@gmail.com> wrote:
La de Gabriel es la posta me parece Mati. 

El feb. 24, 2017 7:31 PM, "Johan Tique" <johan...@gmail.com> escribió:
Hola Martín

Dependiendo de las reglas de negocio del formulario y los tres modelos podrías entre otras cosas solucionarlo de las siguientes formas:


1. Si los modelos están asociadoas a través de alguna relación puedes usar nested attributes, fields_for o simple_fields_for (si usas simple form)... recuerda que debes tener la opcion de accepts_nested_attributes_for habilitatada en tus modelos.

2. puedes usar una estrategia de form activo en rails, hacer un PORO con "esteroides" usando active_attributes o virtus + active_model y hacer una representacion de lo que mas te convenga, lo bueno de esto es que puedes genrar reglas de negoio flexibles o validaciones sin impactar ningun modelo, solo lo persistirias hasta que estes seguro de que es lo que quieres, lo malo es que te sales un poco del stack de rails y tal vez algunas cosas te tocaria hacerlas manuales.

Saludos.
2017-02-24 17:24 GMT-05:00 Matias Mascazzini <matia...@gmail.com>:
Hola,
me toca combinar varios modelos en un solo formulario largo. La consulta es: ¿De qué manera me recomiendan hacerlo? es decir que los datos se guardaran en 3 modelos distintos.


Tengo 3 modelos: postulantes, empresas y postulaciones, cada uno con sus datos particulares. Los postulantes se postulan para trabajar en una empresa según cierta modalidad de contrato que figura en la postulación.

Tengo armado ya los CRUD para cada uno de los modelos con su formulario de alta, pero ahora el cliente quiere cargar todo en un solo formulario.





Saludos
Matías Mascazzini
keep in touch about.me/matiasmasca


--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Johan Tique Ramírez
IEEE Young Professional Member
SSO IEEE Member
Co-Fouder at Analisistem
Researcher at GIT
Electronic and Telecommunications Engineer
Unicauca

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Juan Matías

unread,
Feb 25, 2017, 4:06:57 PM2/25/17
to rub...@googlegroups.com
Disculpas, quise escribir Johan, no Martín. 

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.





--
Johan Tique Ramírez
IEEE Young Professional Member
SSO IEEE Member
Co-Fouder at Analisistem
Researcher at GIT
Electronic and Telecommunications Engineer
Unicauca










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+u...@googlegroups.com.

Johan Tique

unread,
Feb 25, 2017, 4:09:57 PM2/25/17
to rub...@googlegroups.com
Oh, creo que debo disculparme por escrbir Martín, quise decir Matias.

Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.





--
Johan Tique Ramírez
IEEE Young Professional Member
SSO IEEE Member
Co-Fouder at Analisistem
Researcher at GIT
Electronic and Telecommunications Engineer
Unicauca










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.










--


Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.



Para acceder a más opciones, visita https://groups.google.com/d/optout.


--
Has recibido este mensaje porque estás suscrito al grupo "rubysur" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a rubysur+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages