Estoy modernizando lentamente una aplicación Rails heredada y estoy tratando de cambiar jquery-ujs por rails-ujs .
Instalé rails-ujs a través de la canalización de activos y sé que funciona como se esperaba: en la consola de mi navegador, tengo acceso al objeto Rails .
Pero, cuando trato de usar el evento Rails.fire para enviar un formulario, no puedo obtener el comportamiento esperado.
En mi opinión:
<%= form_with model: post, method: :PUT, url: post_update_url(post), local: false, html: { data: { target: "posts.form", action: "ajax:success->posts#submitSuccess" } } do |f| %> // Form stuff <% end %>En mi controlador de estímulo:
submit() { Rails.fire(this.formTarget, 'submit'); } submitSuccess() { console.log("Success!") } Si elimino local: false , el formulario se envía tal como se esperaba y la página se vuelve a cargar. Pero tan pronto como volvemos a agregar AJAX, Rails.fire() simplemente devuelve false . ¿Cómo actualizaría esto para enviar este formulario de forma remota?
(Tenga en cuenta que mis controladores Stimulus se administran a través de Webpacker, mientras que Rails-ujs se instala a través de la canalización de activos. Debido a las limitaciones dentro de mi aplicación, me gustaría evitar rails-ujs a través de Webpacker en este momento, si es posible.