我之前发过一个问题,但我并不清楚我的意图。所以在这里我会再试一次。
我遇到的问题是我需要分别提取亚马逊和厨师的价值。现在它们都在迭代中保存在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
%>
答案 0 :(得分:0)
你想要这个:
SAO.each do |k,v|
puts "env: #{k}; amazon: #{v[:amazon]}; chef: #{v[:chef]}; "
end
如果您在2个列表之后,则需要2个独立循环。