You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails 7的UJS响应模板中启用jQuery?

Rails 7 中恢复 js.erb 模板的 jQuery 支持

问题根源是你通过 ES 模块导入的 jQuery 仅存在于模块作用域内,而 data-remote="true" 触发的 js.erb 模板是在全局作用域执行的,所以找不到 $ 变量。按以下步骤修复:

  • 将 jQuery 暴露到全局作用域
    修改你的导入代码,把 jQuery 挂载到 window 对象上:

    import $ from 'jquery'
    window.$ = window.jQuery = $; // 新增此行,让全局能访问到 jQuery
    import Rails from '@rails/ujs';
    Rails.start();
    
  • 确认 Importmap 配置(如果使用)
    如果你用 Rails 7 默认的 Importmap,确保 config/importmap.rb 中已经正确 pin 了 jQuery:

    pin "jquery", to: "https://ga.jspm.io/npm:jquery@3.7.1/dist/jquery.js"
    
  • 处理 Turbo 兼容性(可选)
    Rails 7 默认启用 Turbo,如果你仍在使用 UJS,建议在 application.html.erb 中禁用 Turbo 或者配置两者共存:禁用 Turbo 的话,在 <head> 里移除 Turbo 的导入,或者给需要用 UJS 的元素加上 data-turbo="false" 属性。

内容的提问来源于stack exchange,提问作者Will

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:52:06