Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

241
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!