我在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 = abc1。如果我想访问server1的abc1,它应该返回1,所以我可以使用server1::data.env.server1.abc1,但我想动态传递这些值('server1‘和abc1)。我该怎么做呢?使用以下命令不会得到我想要的结果:
Test::data.env[server_name][prop_values]我想让它解析并得到.yml文件中使用拼音的实际值
发布于 2018-02-10 06:05:15
首先,我们创建用于访问自定义.yml文件的load_custom.rb:
config/initializers/load_config.rb
CONFIG_PATH="#{Rails.root}/config/rv.yml"
RV_CONFIG = YAML.load_file(CONFIG_PATH)然后在配置文件夹中创建rv.yml文件,如下所示:
./config/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]结果:
{"abc"=>"ABC",1,"def"=>"DEF",2,"ghi"=>"GHI",3,"jkl"=>"JKL",4}
RV_CONFIG[server_name]['abc']结果:
"ABC",1个
https://stackoverflow.com/questions/48714074
复制相似问题