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

159
Vistas
¿Cómo actualizar un objeto DOM modal después de llamar al método con JS on Rails 5.2?

Estoy tratando de lograr algo que suena simple, pero que falla en este contexto particular.

Una instancia de Tarea se muestra en una ventana modal. La vista Mostrar modal incluye un formulario que, cuando se envía, activa el método de verificación en el controlador de tareas. El método actualiza un campo y el cambio debe reflejarse en la vista Mostrar actual.

Desafortunadamente, Rails genera un error UnknownFormat , reclamando una plantilla html.

También traté de representar el fragmento de JavaScript directamente dentro del método con: render js: "document.getElementById('task-git-hash').value = ('#{ @task.git_hash }');" pero el código se representa literalmente como una nueva página html, en lugar de ejecutarse en la vista actual.

vista modal show.html.erb (extracto)

 <%= form_with model: @task, url: :verify_task, method: :post, html: {id: "verify_form"}, remote: true do |f| %> <div class="row mat-form-row"> <div class="mat-form-field col-md-4"> <label for="task-git-hash" class="mat-form-field-label"> <%= t('tasks.show.GitHash') %> </label> <input id="task-git-hash" class="mat-input-element" readonly value="<%= @task.git_hash %>" /> </div> <div class="mat-form-field col-md-6"> <%= f.label :verify_on_technology_id, t('tasks.show.Technology'), class: "mat-form-field-label" %> <%= f.grouped_collection_select :verify_on_technology_id, values_options_for('Technologies', 1, @task.technology_id), # group :subs, # descendants :code, # group label :id, :code, # option key & label {:include_blank => false}, { class: "mat-input-element select2-candidate" } %> </div> <div class="mat-form-field col-md-2"> <%= f.label :git_hash, t('tasks.show.GetHash'), class: "mat-form-field-label" %> <button class="mat-flat-button mat-button-base mat-primary"> <%= t('Verfiy') %> </button> </div> </div> <% end %>

método task_controller

 def verify ### Retrieved by Callback function @task.update_attribute(:git_hash, Time.now.strftime("Tested at %H:%M")) end

verificar.js.erb vista

 document.getElementById("task-git-hash").value = ("<%= @task.git_hash %>");

¿Cómo puedo hacer para actualizar este campo en la vista actual cuando se valida el formulario?

about 4 years ago · Juan Pablo Isaza
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