Estoy intentando crear una aplicación de Rails en la que puede editar el mismo modelo desde varias ubicaciones diferentes en la página. Quiero que los cambios se guarden automáticamente cada X segundos, con la opción de activar manualmente un guardado.Rieles: GoogleDocs-Style Autoguardar
He encontrado una solución, pero parece muy complicada, y supongo que otros usuarios de Rails ya se han enfrentado a preguntas similares.
La solución que surgió, es tener un formulario oculto en mi página que es el que en realidad se envió, y luego tener múltiples formularios "falsos" diseminados por la página que actualizan el formulario oculto.
Una vez enviado, el formulario oculto actualiza el modelo y el modelo contiene lógica para determinar qué archivos RJS se deben devolver en respuesta. Estos se incluyen y se envían como una respuesta de actualización.
algunas limitaciones:
- No se puede envolver toda la página en una etiqueta de formulario (hay varios modelos/controladores en la página)
- El mismo campo podría ser editable desde múltiples ubicaciones
¿Alguien tiene una manera más eficiente?
1. ¿Cómo evitaría los conflictos de ids entre los campos de entrada? Recuerde que quiero permitir editar el mismo campo en varias ubicaciones diferentes – shmichael
2. ¿Cómo me ocupo de actualizar todas las representaciones de un campo de formulario actualizado sin usar RJS? No quiero actualizar toda la página para una actualización de campo individual. – shmichael
para 1. puede pasar un parámetro: id a su ayudante de entrada. <% = f.text_field: name,: id => 'bla'%> Depende de usted cuidar su identificación para evitar colisiones. Tal vez pueda prefijarlos por el nombre del formulario – hellvinz