5

在我的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)

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

uninitialized constant Statsd (NameError)

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

4

0 回答 0