我如何去跟踪与Bundler相关的DEPRECATION WARNING

我对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)

嗯,这并没有真正缩小它。 这对我说,与我的应用程序相关的其中一个宝石是使用一个即将消失的关键字。 我真的很想弄清楚哪一个。 我的gemfile中的所有gem都使用>= [version]语法,除了来自github的那些。 我怀疑github的东西造成了这种情况,但我怎么知道它是哪个项目? 拉动代码并搜索关键字看起来像工作 - 有没有更简单的方法?


Rails弃用警告在这里相当无用。 它有一个完整的callstack,可以帮助你找到过时的gem,但是过滤结果返回callstack中的第一个非框架点,在这里是application.rb。

要找到有问题的宝石,我会在activesupport / lib / active_support / deprecation / reporting.rb的第10行定义的ActiveSupport :: Deprecation.warn中获取完整的callstack。

如果您安装了Pry(推荐),则在reporting.rb的第11行添加条件绑定:

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

然后检查来电者。

如果你发布一个Gemfile,我可以为你寻找。

链接地址: http://www.djcxy.com/p/56061.html

上一篇: how do I go about tracking down DEPRECATION WARNING related to Bundler

下一篇: Run time error while typecasting WebDriver to CheckBox