Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

255
Visualizações
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.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

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.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda