相关疑难解决方法(0)

Rails 6 Zeitwerk“弃用警告:初始化自动加载常量...”,但我不知道在哪里?

我发誓我已经阅读了文档,并且我认为我对这些原理有了基本的了解,但是我一生都无法弄清楚我在哪里不恰当地加载了这些常量。

我正在升级一个最初是 Rails 5.2 的应用程序

当我运行 RSpec、服务器、本地控制台等时,我收到此警告。

DEPRECATION WARNING: Initialization autoloaded the constants ApplicationHelper, EventsHelper, FontAwesome::Rails::IconHelper, DeviseHelper, ErrorHandler, and ApplicationController.

Being able to do this is deprecated. Autoloading during initialization is going
to be an error condition in future versions of Rails.
Run Code Online (Sandbox Code Playgroud)

以下是不正确自动加载的常量:

  • ApplicationHelper - 标准 Rails 文件
  • EventsHelper - EventsController 的标准 Rails 文件
  • FontAwesome::Rails::IconHelper -来自 gem,不在我的应用程序目录中
  • DeviseHelper -来自 gem,不在我的应用程序目录中
  • ErrorHandler -位于“app/controllers/concerns/error_handler”
  • ApplicationController -标准 Rails 文件

我寻找过可能调用这些常量的实例includerequire但没有找到。我特别关注我的初始化程序。

我已经运行(并通读)bin/rails zeitwerk:check没有任何明显的提示。我看到这些实例按预期加载:

... …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-6 zeitwerk

13
推荐指数
1
解决办法
4689
查看次数

标签 统计

ruby-on-rails ×1

ruby-on-rails-6 ×1

zeitwerk ×1