簡體   English   中英

Rails UJS 不使用 Rails 7 觸發

[英]Rails UJS not firing with Rails 7

我將我的 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不再觸發,當我檢查網站時,日志或網絡部分沒有錯誤。

我覺得我在這里遺漏了一些重要的東西,但我不知道是什么。

要將 rails-ujs 添加到 Rails 7,您應該執行以下步驟:

  1. 固定它,讓應用程序知道要使用哪個 package。 在 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. 重啟你的應用服務器

除了@ruslan-vallev 的回答,請注意它們需要共存,並且您很可能會使用渦輪增壓。 請參閱有關提交處理程序的此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM