为 gem Rails 配置全局设置的最佳位置

best place to configure a global setting for a gem Rails

我在 rails 应用程序中使用 Google Api Client gem。

我需要全局设置如下配置:

Google::Apis::RequestOptions.default.retries = 5

什么是最好的practice/location。

请注意设置此选项时遇到问题的其他人: Google::Apis class 直到 0.9.x 版本才存在 google_api_client gem 与以前的版本不兼容。

如果该选项取决于应用程序实例 运行,假设您需要在本地机器或暂存中重试 1 次,但希望在生产环境中重试 5 次,最好的处理方法是将其保存在环境变量中并在应用程序启动时获取它。

因此,将以下代码放入您的初始化程序中(比如 ./config/initializers/google_api_client.rb):

Google::Apis::RequestOptions.default.retries = ENV['google_api_client_retries']

然后您可以启动指定它的应用程序:

google_api_client_retries=1 bundle exec rails s

您可以使用 dotenv gem 将环境变量保存在文件中(以便在开发环境中保持简单),只需将其放在 ./.env 文件中:

google_api_client_retries: 1

它会自动获取,所以你只需

启动应用程序
bundle exec rails s

如果您只想在任何应用程序实例上将其设置为 5,您可以在初始化程序中将其显式设置为 5。