1

我将我的 Rails 应用程序升级到 Rails 7。我知道 Turbolinks 和 Rails UJS 实际上被 Rails 7 中 Stimulus 和 Turbo 的 Hotwire 组合所取代,但我想知道我是否仍然可以使用 UJS,如果可以,为什么不能在职的?

我的不起作用的方法如下所示:

  submit(event) {
    this.errorTarget.classList.add("hidden")
    Rails.fire(this.formTarget, "submit")
    console.log('hi')
  }

console.log 有效。当我点击一个元素时,它曾经用这个代码改变,但现在它不再改变了。Rails.fire当我检查网站时,根本不再触发,并且日志或网络部分没有错误。

我觉得我在这里遗漏了一些重要的东西,但我不知道是什么。

4

2 回答 2

3

要将 rails-ujs 添加到 Rails 7,您应该执行以下步骤:

  1. 固定它,让应用程序知道要使用哪个包。在 bash 中输入:
./bin/importmap pin @rails/ujs

现在您的config/importmap.rb文件中有如下内容:

pin "@rails/ujs", to: "https://ga.jspm.io/npm:@rails/ujs@7.0.1/lib/assets/compiled/rails-ujs.js"
  1. 现在将@rails/ujs 包含到您的javascript 中。在文件javascript/controllers/application.js 中添加:
import Rails from '@rails/ujs';

Rails.start();
  1. 重启你的应用服务器
于 2022-01-19T11:19:36.147 回答
0

除了@ruslan-vallev 的回答,请注意它们需要共存,并且您很可能会使用涡轮增压。 请参阅有关提交处理程序的此链接

于 2022-01-22T17:41:17.867 回答