0

我正在慢慢对旧版 Rails 应用程序进行现代化改造,并试图换掉jquery-ujs.rails-ujs

我已经rails-ujs通过资产管道安装,并且知道这是按预期工作的:在我的浏览器控制台中,我可以访问该Rails对象。

但是,当我尝试使用该Rails.fire事件提交表单时,我无法获得预期的行为。

在我看来:

<%= 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 %>

在我的刺激控制器中:

submit() {
  Rails.fire(this.formTarget, 'submit');
}

submitSuccess() {
  console.log("Success!")
}

如果我删除local: false,则表单会按预期提交,并且页面会重新加载。但是一旦我们添加 AJAX 回来,Rails.fire()就简单地返回false. 我将如何更新它以以编程方式远程提交此表单?

(请注意,我的 Stimulus 控制器是通过 Webpacker 管理的,而 rails-ujs 是通过资产管道安装的。由于我的应用程序中的限制,如果可能的话,我现在想避免rails-ujs通过 Webpacker。

4

0 回答 0