Rails 需要环境配置文件中的语句

rea*_*not 5 ruby ruby-on-rails statsd datadog

在我的config\environments\development.rbconfig\environments\production.rb文件中,我设置了一些全局变量。在下面的示例中,我有Redis一个指向我们的缓存的Statsd实例和一个指向 DataDog 代理的实例。

config.x.cache = Redis.new(url: ENV["CACHE"])  
config.x.statsd = Statsd.new('localhost', 8125)
Run Code Online (Sandbox Code Playgroud)

在 Redis 的情况下,我添加gem 'redis'到我的 gem 文件中,运行bundle install并且一切正常。然而,在 StatsD 的情况下,似乎我还需要require 'statsd'development.rbproduction.rb文件的顶部添加以便能够创建实例。当然,我也添加gem 'dogstatsd-ruby'到我的 gem 文件并运行了bundle install,但这似乎还不够。如果我不在require配置文件的顶部添加该语句,当我尝试运行我的 Rails 应用程序时,我会收到以下错误:

uninitialized constant Statsd (NameError)
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么我必须require只在这种特殊情况下(StatsD)添加语句,或者有更好的方法来做到这一点?谢谢!