如何在Rails 3应用程序中列出所有已定义的环境?

Dor*_*ian 10 ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我想知道是否有办法在Rails应用程序中列出所有已定义的环境.

例如,如果一个应用程序有4个已定义的环境(生产,登台,开发,测试),我想获得以下数组

 ["production", "staging", "development", "test"]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢

Jiř*_*šil 15

我不确定您是否可以通过一些Rails API获取已定义环境的列表.环境文件根据当前环境动态加载.如前所述,您可以config/environments为任何.rb文件创建目录.

Dir.glob("./config/environments/*.rb").map { |filename| File.basename(filename, ".rb") }
Run Code Online (Sandbox Code Playgroud)

如果要获取database所定义的所有环境的列表database.yml,可以从以下位置获取列表:

ActiveRecord::Base.configurations.keys
Run Code Online (Sandbox Code Playgroud)

假设你实际上正在使用AR.