Как перебирать хэш-структуру yaml в ruby?
у меня есть хэш-сопоставление в моем файле yaml, как показано ниже. Как я могу повторить его в простом сценарии ruby? Я хотел бы сохранить ключ в переменной и значение в другой переменной в моей программе ruby во время итерации.
source_and_target_cols_map:
 -
    com_id: community_id
    report_dt: note_date
    sitesection: site_section
    visitor_cnt: visitors
    visit_cnt: visits
    view_cnt: views
    new_visitor_cnt: new_visitors
способ получения данных из файла yaml приведен ниже:
#!/usr/bin/env ruby
require 'yaml'
    config_options = YAML.load_file(file_name)
    @source_and_target_cols_map = config_options['source_and_target_cols_map']
puts @source_and_target_cols_map
            2 ответов
в своем yaml файл вы должны получить ниже Hash в строке config_options = YAML.load_file(file_name)
config_options = { 'source_and_target_cols_map' =>
 [  { 'com_id' => 'community_id',
    'report_dt' => 'note_date',
    'sitesection' => 'site_section',
    'visitor_cnt' => 'visitors',
    'visit_cnt' => 'visits',
    'view_cnt' => 'views',
    'new_visitor_cnt' => 'new_visitors' }
  ]}
затем, чтобы повторить, вы можете взять следующий подход:
config_options['source_and_target_cols_map'][0].each {|k,v| key = k,value = v}
в формате YAML.метод load_file должен возвращать хэш ruby, поэтому вы можете перебирать его так же, как обычно, используя метод each:
require 'yaml'
config_options = YAML.load_file(file_name)
config_options.each do |key, value|
    # do whatever you want with key and value here
end