Cómo mostrar el contenido del formulario que acaba de ingresar en la opción ": confirmar =>" en Ruby on Rails

StackOverflow https://stackoverflow.com/questions/1879344

  •  18-09-2019
  •  | 
  •  

Pregunta

Estoy tratando de tener una forma de confirmar la información ingresada antes de guardarla en el DB

Consideró hacer una página de confirmación individual como se discutió aquí

Ruby on Rails: página de confirmación para la creación de objetos de Activerecord

Sin embargo, mi formulario incluye un archivo adjunto que usa PaperClip que hace que sea más complicado implementar.

Pensé en tener un: Confirmar => Pop Up que mostraría la información que el usuario acababa de ingresar.

El problema es cómo mostrar la información que el usuario acababa de ingresar, por ejemplo

<% form_for @entry, :html => { :multipart => true } do |f| %>
  <%= f.error_messages %>


    <%= f.label :name %><br />
    <%= f.text_field :name %>

    <%= f.label :file %><br />
    <%= f.file_field :file %>

    <%= f.submit 'Create', :confirm => "????? " %>

<% end %>
¿Fue útil?

Solución

Dado que sus archivos adjuntos de carga, puede que no sea una mala idea representar una vista de puesta en escena, incluida la información derivada del archivo adjunto que permite confirmar al usuario. Como en Muestra el archivo si se trata de una imagen, o el primer párrafo de texto si es un archivo de texto, etc.

Va a tomar más trabajo que solo agregar una ventana emergente de confirmación, pero creo que la experiencia mejorada del usuario vale la pena el esfuerzo adicional.

No estoy familiarizado con la forma en que funciona PaperClip. Entonces, principalmente, eres solo por los detalles íntimos.

Probablemente tendrá que crear un registro antes de que la vista de puesta en escena se pueda representar con la muestra del archivo cargado. Para lograr que configuraría una columna "activa" en el modelo en cuestión, que predeterminada en falso.

El uso se vería algo así:

  1. El usuario completa un nuevo formulario.
  2. El archivo adjunto se actualiza y los registros se guardan, con el campo activo establecido en falso.
  3. Redirigido a la página de confirmación que es esencialmente la página Mostrar con un enlace/botón de confirmación y un enlace de cancelación/botón
  4. una. Cuando se hace clic en el enlace de confirmación/botón, envía una solicitud al controlador que activa la acción de actualización en esta configuración de registro activa en verdadero.

    b. Cuando se hace clic en el enlace de cancelación/botón, envía una solicitud al controlador que trigan la acción Destruir en este registro.

Todo lo que queda es configurar una tarea recurrente para eliminar objetos que están inactivos y que fueron cazados hace el tiempo suficiente para que sea seguro asumir que el usuario acaba de terminar la sesión del navegador.

Otros consejos

La opción Confirmar para el método de envío de rieles solo puede tomar un valor de texto.

Si desea generar dinámicamente el texto de confirmación, una forma que pueda hacerlo es escribir su propia etiqueta de envío HTML y escribir JavaScript personalizado para analizar los campos que desea usar en su texto generado.

O puede usar el método de envío de rieles, pero use algo como jQuery para agregarle un controlador de eventos.

Solo lanzaría mi JS en un manejador OnClick. Eso es todo lo que hace Rails.

<%= f.submit 'Create', :onclick => "confirm('Name is ' + $F('entry_name'));" %>

(Tenga en cuenta que no probó eso, pero se ve cercano. Confirmar es una función JS central, no parte de ninguna lib)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top