我有一个使用 React 作为前端的 Ruby on Rails 单页应用程序,自从我们从 Rails 6.1 升级到 Rails 7.0 以来,警告 “DEPRECATION:action_cable.js 已重命名为 actioncable.js – 请更新您的Rails 8 之前的参考” 出现在应用程序的几乎每个页面的浏览器控制台上,除了静态视图(没有表单等),例如电子邮件和主页。
我尝试检查我的 Gemfile 以确保它们是最新的,运行
bundle update
希望问题是由过时的 gem 引起的,但警告仍然存在。我检查了项目文件夹,没有“action_cable.js”或“actioncable.js”文件,代码的任何部分也没有对这些文件/路径的任何引用。
有人知道如何解决这个警告吗?我找不到任何有关如何执行此操作的信息,也找不到遇到相同问题的其他人。
这是我第一次在这里发帖,所以如果有任何信息遗漏,我会非常乐意分享!
在我的
app/assets/javascripts/cable.js
文件中,有一个对 require action_cable
的引用(这假设您正在寻找 action_cable.js
。我相信这个文件位于 actioncable
gem 中,这就是为什么您找不到它。
像这样在 require 注释中进行以下更改应该可以修复它:
// Action Cable provides the framework to deal with WebSockets in Rails.
// You can generate new channels where WebSocket features live using the rails generate channel command.
//
// CHANGE THIS this require from action_cable to actioncable
//= require actioncable
//= require_self
//= require_tree ./channels
您可能需要像这样重建您的 javascript 资源:
rake assets:clean && rake assets:precompile
甚至可能还需要重新启动服务器。
这个解决方案也帮助我解决了这个问题。
将 //= require action_cable 替换为 //= require actioncable