我在rv.yml文件中有以下内容:
:server1:
:abc: ['ABC',1]
:def: ['DEF',2]
:ghi: ['GHI',3]
:jkl: ['JKL',4]
:server2:
:abc: ['ABC',4]
:def: ['DEF',2]
:ghi: ['GHI',1]
:jkl: ['JKL',3]
我在运行时期间存储服务器值并将数组的一部分留在变量中。例如:server_name = server1(动态)和prop_values = abc [1]。如果我想访问server1的abc [1]它应该返回1,所以我可以使用Test :: data.env.server1.abc [1]但我想动态传递值('server1'和abc [1] )。我该怎么做呢?使用以下内容并不能满足我的需求:
Test::data.env[server_name][prop_values]
我想让它解决并使用ruby
获取.yml文件中的实际值答案 0 :(得分:0)
首先,我们创建 load_custom.rb 以访问自定义 .yml 文件:
<强>配置/初始化/ load_config.rb 强>
CONFIG_PATH="#{Rails.root}/config/rv.yml"
RV_CONFIG = YAML.load_file(CONFIG_PATH)
然后我们在config文件夹中创建 rv.yml 文件,如下所示:
<强> ./配置/ rv.yml 强>
server1:
abc: ['ABC',1]
def: ['DEF',2]
ghi: ['GHI',3]
jkl: ['JKL',4]
server2:
abc: ['ABC',4]
def: ['DEF',2]
ghi: ['GHI',1]
jkl: ['JKL',3]
现在,我们可以像下面这样访问:
server_name = 'server1'
RV_CONFIG[server_name]
结果:
{&#34; abc&#34; =&gt; [&#34; ABC&#34;,1],&#34; def&#34; =&gt; [&#34; DEF&#34;,2 ],&#34; ghi&#34; =&gt; [&#34; GHI&#34;,3], &#34; jkl&#34; =&gt; [&#34; JKL&#34;,4]}
RV_CONFIG[server_name]['abc']
结果:
[&#34; ABC&#34;,1]