从gem确定rails环境

And*_*rew 3 ruby gem ruby-on-rails

我正在开发一个rails gem,我有一些逻辑,我想根据rails环境有条件.

以下代码错误:

if Rails.env.production?
Run Code Online (Sandbox Code Playgroud)

在测试应用程序中运行时,这给了我:

undefined method .env for Gemname::Rails::Module
Run Code Online (Sandbox Code Playgroud)

那么,如何从一个gem中的模块中的方法调用中找到Rails环境?

Chr*_*ald 7

Rails的项目中有一个模块,常量查找是找到它,而不是顶层的Rails模块.您可以使用顶级常量:

::Rails.env.production?
Run Code Online (Sandbox Code Playgroud)

或者您可以检查环境变量:

ENV['RAILS_ENV']
Run Code Online (Sandbox Code Playgroud)