DEPRECATION警告:尚未设置PaperTrail.track_associations。从PaperTrail 5开始,它默认为false。跟踪关联是一项实验性功能,因此我们建议您在config / initializers / paper_trail.rb中设置PaperTrail.config.track_associations = false。 (在/Users/george/.rbenv/versions/2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:68上从require调用) 运行选项:
由于这不是Rails应用,因此没有config/initializers/paper_trail.rb
。看了https://github.com/airblade/paper_trail/blob/master/lib/generators/paper_trail/install_generator.rb
,但没有看到配置文件的生成器。
如果我这样做
require 'paper_trail'
PaperTrail.config.track_associations = false
它仍会发出警告。
也尝试过:
def PaperTrail; end
PaperTrail.config.track_associations = false
require 'paper_trail'
这是一款“经典”Sinatra应用程序。
答案 0 :(得分:4)
之所以发生这种情况,是因为调用require 'paper_trail'
初始化PaperTrail.config
对象:this行导致需要this个文件,{{3}执行导致初始化config
单例。我们可以先设置配置对象然后再要求顶级paper_trail
文件来解决这个问题。
# app.rb
require 'sinatra'
require 'paper_trail/config'
config = PaperTrail::Config.instance
config.track_associations = true
# require models here
Dir["#{Dir.pwd}/models/*.rb"].each { |file| require file }
# rest of app code
这些模型不需要任何改变:
# models/article.rb
require 'paper_trail'
class Article < ActiveRecord::Base
has_paper_trail
end
因此,当执行require 'paper_trail'
调用时,我们已经拥有正确的配置设置,并且不会显示警告。
答案 1 :(得分:1)
我在PaperTrail.config.track_associations = false
的定义中向config/application.rb
添加了class Application
。