我正在慢慢对旧版 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。