如何以' var'开头动态访问所有配置参数?在config / applications.rb中定义?

时间:2016-11-17 17:32:14

标签: ruby-on-rails ruby ruby-on-rails-3

在我的config / applications.rb中,我设置了参数:

config.var1 = 1
config.var2 = 5
config.varx = 7

我可以使用

访问它们
Rails.application.config.var1

我正在尝试动态构建名称以' var'开头的所有配置参数的哈希值,因此输出将是

{var1: 1, var2: 5, varx: 7}

我查看了Rails.application.config.methods,Rails.application.config.instance_variables,Rails.application.config.inspect等等,他们不会返回var1等。

如何以' var'开头动态访问所有配置参数?在config / applications.rb中定义?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

虽然我完全同意@SergioTulentsev 你做错了,但你仍然可以自由:

Rails::Railtie::Configuration.class_variable_get(:@@options)
                             .select { |k, _| k =~ /\Avar/ }
#⇒ {
#    :var1 => 42
# }

事实上,通过method_missing提供对此类变量的访问。