-1

我之前发布了一个问题,我不清楚我的意图。所以在这里我会再试一次。

我遇到的问题是我需要分别提取亚马逊和厨师的价值。现在它们在我的迭代中都保存在 b 值中。我试图在 value.each 中创建另一个循环,但出现错误。如何有效地分别有效地提取价值?

任何帮助将不胜感激。

我以这种方式从 yaml 文件中获取哈希值

require 'yaml'
path = File.join(Rails.root, 'config', 'stage-aws-opscode.yml')
SAO = YAML.load_file(path)

stage-aws-opscode.yml 包含以下数据

sandbox: &defaults
  amazon: aws-green
  chef: mdsol

validation:
  <<: *defaults

cruise:
  <<: *defaults

hendricks:
  <<: *defaults

distro:
  <<: *defaults

performance:
  <<: *defaults

innovate:
  amazon: aws-red
  chef: mdsol-production

production:
  amazon: aws-red
  chef: mdsol-production

这是我的迭代。

<%
 SAO.each do |key, value| 
 parent = "#{key}" 
  value.each do |a, b| 
   "#{a}"  "#{b}"
  end 
end
    %>
4

1 回答 1

0

你想要这个:

SAO.each do |k,v|
 puts "env: #{k}; amazon: #{v[:amazon]}; chef: #{v[:chef]}; "
end

如果你在 2 个列表之后,那么你需要 2 个独立的循环。

于 2012-08-17T23:00:41.237 回答