Ruby on rails 确定是否加载了Rails环境

Ruby on rails 确定是否加载了Rails环境,ruby-on-rails,Ruby On Rails,如何确定Rails是否加载了完整的环境?例如,特定于环境的配置已完全加载 我的潜在问题是,我正在安装一个钩子来捕获特定于环境的配置中的某些异常,但我不想在配置仍在加载时捕获任何异常,以免掩盖任何配置问题 我发现了一些不令人满意的方法,例如Rails.application.config.middleware在配置完全加载之前(以及MiddlewareStack之后)将是一个MiddlewareStackProxy实例,但必须有一种更直接的方法。以下是加载顺序,在我看来,您需要设置自己的环境变量,

如何确定Rails是否加载了完整的环境?例如,特定于环境的配置已完全加载

我的潜在问题是,我正在安装一个钩子来捕获特定于环境的配置中的某些异常,但我不想在配置仍在加载时捕获任何异常,以免掩盖任何配置问题


我发现了一些不令人满意的方法,例如
Rails.application.config.middleware
在配置完全加载之前(以及
MiddlewareStack
之后)将是一个
MiddlewareStackProxy
实例,但必须有一种更直接的方法。

以下是加载顺序,在我看来,您需要设置自己的环境变量,可能在“初始化器完成”之后,然后在代码中检查是否已设置。

由于您所做的工作,我认为除了消化这部分文档之外没有其他方法(请参见1.14):

谢谢,但我的任务确实取决于环境,这不是问题所在。由于我正在编写的framework-y代码(捕获Rake任务引发的异常),我真的需要知道环境是否已从加载序列中的任何点加载。因此,如果您的代码依赖于env,并且env已加载,因为您的条件依赖于此,那么问题是什么?你需要检查env中的哪些值?这不是关于平均的Rake任务,我是在攻击Rake本身。你可以看到我在做什么。我的代码monkeypatches可以捕获异常。然而,一旦monkeypatch就位(在环境加载期间发生),它就会捕获任何异常。我不想这样,我只想在环境完成加载后捕获异常。谢谢。实现我想要的一个合理的方法是在初始化之后使用(使用
Rails.application.config.after\u initialize
)。
Preinitializers
environment.rb
Environment-specific Configuration Files
Initializers (load_application_initializers)
After-Initializers