弃用警告:初始化自动加载常量 ActionText::ContentHelper 和 ActionText::TagHelper

问题描述

我正在尝试理解弃用警告:

DEPRECATION WARNING: Initialization autoloaded the constants 
ActionText::ContentHelper and ActionText::TagHelper.

Being able to do this is deprecated. Autoloading during initialization is 
going
to be an error condition in future versions of Rails.

Reloading does not reboot the application,and therefore code executed during
initialization does not run again. So,if you reload 
ActionText::ContentHelper,for example,the expected changes won't be reflected in that stale Module object.

These autoloaded constants have been unloaded.

In order to autoload safely at boot time,please wrap your code in a reloader
callback this way:

Rails.application.reloader.to_prepare do
  # Autoload classes and modules needed at boot time here.
end

That block runs when the application boots,and every time there is a reload.
For historical reasons,it may run twice,so it has to be idempotent.

Check the "Autoloading and Reloading Constants" guide to learn more about how
Rails autoloads and reloads.
 (called from <top (required)> at 
/home/keith/development/pciapp/config/environment.rb:5)

这个弃用警告是什么意思,我该如何解决

解决方法

在我的 Rails 6.1 应用中,通过一些调查揭示了此弃用警告的两个来源。

  1. 我在几个初始值设定项中引用了 ActionMailer::Base。根据 Rails 指南 (https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration) 中的建议,我决定将所有这些引用移至 environment.rb。

  2. mailgun-ruby gem v 1.2.3 显然也产生了同样的弃用错误。似乎已在 v 1.2.4 中修复了弃用警告。

,

这是 rails 6.0.0 中的一个问题 https://github.com/rails/rails/issues/36546 更新到 rails 6.0.1 应该可以解决这个问题

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...