gpt4 book ai didi

ruby-on-rails - 我该如何去追踪与 Bundler 相关的 DEPRECATION WARNING

转载 作者:数据小太阳 更新时间:2023-10-29 07:00:20 26 4
gpt4 key购买 nike

我是 Rails 的新手。当我启动我的应用程序时,我不断看到这些弃用警告:

DEPRECATION WARNING: ref is deprecated and will be removed from Rails 3.2. 
(called from <top (required)> at D:/dev/AquaticKodiak/config/application.rb:12)
DEPRECATION WARNING: new is deprecated and will be removed from Rails 3.2.
(called from <top (required)> at D:/dev/AquaticKodiak/config/application.rb:12)

好的,第 12 行是什么?这个:

Bundler.require(:default, :assets, Rails.env)

嗯,这并没有真正缩小范围。这对我来说,与我的应用程序相关的一个 gem 正在使用一个很快就会消失的关键字。我真的很想弄清楚是哪一个。我的 gemfile 中的所有 gem 都使用 >= [version] 语法,除了来自 github 的那些。我怀疑是 github 的东西导致了这个,但我如何找出它是哪个项目?提取代码并搜索关键字看起来很有效——有更简单的方法吗?

最佳答案

Rails 弃用警告在这里毫无帮助。它有一个完整的调用堆栈,可以帮助您找到过时的 gem,但正在过滤结果以返回调用堆栈中的第一个非框架点,在本例中为 application.rb。

为了找到有问题的 gem,我会在 ActiveSupport::Deprecation.warn 中获取完整的调用堆栈,它在 activesupport/lib/active_support/deprecation/reporting.rb 的第 10 行定义。

如果你有Pry安装(推荐)然后在 reporting.rb 的第 11 行添加条件绑定(bind):

binding.pry if message =~ /ref is deprecated/

然后检查调用者。

如果你发布一个 Gemfile,我可以帮你看看。

关于ruby-on-rails - 我该如何去追踪与 Bundler 相关的 DEPRECATION WARNING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com