在开发中运行应用程序时,不会抛出此警告。 FactoryGirl的代码是抛出这个吗?我试图找到一些信息,但看起来并不像其他人那样。
答案 0 :(得分:1)
如果您告诉Rails为弃用警告提供完整的堆栈跟踪,您应该能够非常轻松地进行诊断。警告来自名为ActiveSupport::Deprecation
的库 - 告诉它以调试模式运行。
# config/environments/test.rb
ActiveSupport::Deprecation.debug = true
对我来说,警告是由Stringex库的旧版本引起的。
FactoryGirl将创建一个新模型,它会触发一个Stringex方法的调用,这会引发警告,尽管在我打开完整的堆栈跟踪之前无法看到它。 bundle update stringex
毫无问题地解决了这个问题。
答案 1 :(得分:0)
看起来它来自ActiveRecord
。
module DeprecationWarning
def body
"#{deprecation_warning}\n#{super}"
end
def deprecation_warning
%{ActiveSupport::Deprecation.warn("This dynamic method is deprecated. Please use e.g. #{deprecation_alternative} instead.")}
end
end
我不确定你为什么不在开发中收到警告。您的环境是否会抑制警告?