Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

244
Vistas
remoto: verdadero no funciona dentro de un modal

Entonces obtuve un formulario con remote: true y funciona como excepción cuando estoy en la página del formulario.

Pero se supone que esta forma está en un modal. Cuando pruebo el formulario en el modal que no funciona.

Tengo 2 casos:

 form_for(@report, remote: true, method: 'post')

Eso arroja un error porque está buscando una plantilla html:

 ReportsController#create is missing a template for this request format and variant. request.formats: ["text/html"] request.variant: []

Y

 form_for(@report, format: "js", remote: true, method: 'post')

Simplemente siga el enlace a la vista js.

Estoy bastante seguro de que este error se debe al hecho de que cargo este formulario de forma asíncrona con:

 $.ajax({ url: "/form/url" })

Pero no puedo averiguar qué hacer.

Como información complementaria, uso Vex lib para la visualización modal.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Enfrenté el mismo problema y sigo tratando de averiguar exactamente por qué remote: true no funcionará dentro de un modal, pero pude obtener el mismo comportamiento omitiendo remote: true y agregando la llamada ajax manualmente.

Entonces, también puedes evitar esto; verifique este código (reducido) que usé en mi _form.html.erb parcial que se representa dentro del modal 1 :

 <div> <%= form_tag company_users_url, id: "company-users-form" do |f| %> Select file: <%= file_field_tag :file %> <%= submit_tag "Send" %> <% end %> <div> <script> $("#company-users-form").submit(function(event){ event.preventDefault(); var formData = new FormData($(this)[0]); $.ajax({ url: '<%= company_users_url %>', type: 'POST', data: formData, async: false, cache: false, contentType: false, enctype: 'multipart/form-data', processData: false }); return false; }); </script>

Con esta configuración, primero uso un remote: true en un form que abre un modal que representa lo anterior parcial. Luego, dentro de ese parcial si envío el formulario, ahora la llamada se envía nuevamente como js , por lo que mi vista js.erb se representa correctamente; en mi caso solo una línea con el nuevo contenido modal:

 $('#company-users-modal').html("<%= j(@new_content) %>");

1 Observe el uso de formData por simplicidad.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda