我是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)
>= [version]
语法,除了来自github的语法。我怀疑github的东西是造成这种情况的,但我怎么知道它是哪个项目?拉代码和搜索关键字看起来像是工作 - 有更简单的方法吗?
答案 0 :(得分:4)
Rails弃用警告在这里非常无用。它有一个完整的callstack可以帮助你找到过时的gem,但是过滤结果以返回callstack中的第一个非框架点,在本例中是application.rb。
要找到有问题的gem,我会在ActiveSupport :: Deprecation.warn中获取完整的callstack,它在activesupport / lib / active_support / deprecation / reporting.rb的第10行定义。
如果安装了Pry(推荐),则在reporting.rb的第11行添加条件绑定:
binding.pry if message =~ /ref is deprecated/
然后检查来电者。
如果您发布了Gemfile,我可以帮您看一下。