Ruby on rails 如何在RubyonRails中从散列中获取值
我正试图通过这样做来获得每个人的Ruby on rails 如何在RubyonRails中从散列中获取值,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正试图通过这样做来获得每个人的组织id output.each do |cta| puts cta['organization_id'] end 这是cta打印出来的: 9763u5r169w6 {"domain"=>"test.test.com", "api_key"=>"**********", "flow_id"=>5, "email"=>"test@test.com", "organization_id"=>1} 我尝试过以下方法,但也
组织id
output.each do |cta|
puts cta['organization_id']
end
这是cta打印出来的:
9763u5r169w6
{"domain"=>"test.test.com", "api_key"=>"**********", "flow_id"=>5, "email"=>"test@test.com", "organization_id"=>1}
我尝试过以下方法,但也没有运气:
puts cta[0]['organization_id']
puts cta[0][:organization_id]
puts cta[:organization_id]
我如何从cta获得组织id
编辑:这是输出的样子
{
"7t6tqrwvnt37" => {
"domain" => "test.test.com", "api_key" => "************", "flow_id" => 5, "email" => "test@test.com", "organization_id" => 1
}, "9mwe71j08a3c" => {
"domain" => "test.test.com", "api_key" => ""************",", "flow_id" => 5, "email" => "test@test.com", "organization_id" => 1
}
}
试试这样的
output.each do |cta|
puts cta[1]['organization_id']
end
试试这样的
output.each do |cta|
puts cta[1]['organization_id']
end
看起来您有一个散列,其中散列值的键是唯一的字符串。但是,您并不关心这些键,所以只需查看每个哈希值,并将其视为要从中检索的哈希
output.each do |key, value|
puts value['organization_id']
end
您的代码和我的代码之间的区别在于,对于这个枚举器块,没有两个输出,值
cta
只是散列键。看起来您有一个散列,其中散列值的键是唯一的字符串。但是,您并不关心这些键,所以只需查看每个哈希值,并将其视为要从中检索的哈希
output.each do |key, value|
puts value['organization_id']
end
您的代码和我的代码之间的区别在于,对于这个枚举器块,没有两个输出,值
cta
只是散列键。您提供的输出中有第二个子散列的输入错误。但我认为这应该是你想要的
cta = { "7t6tqrwvnt37"=> { "domain"=>"test.test.com", "api_key"=>"************", "flow_id"=>5, "email"=>"test@test.com", "organization_id"=>1 },
"9mwe71j08a3c"=> { "domain"=>"test.test.com", "api_key"=>"************", "flow_id"=>5, "email"=>"test@test.com", "organization_id"=>1 } }
# Loop over hash and print organization_id value.
cta.each do |key, value|
puts value["organization_id"]
end
您提供的输出中有第二个子散列的输入错误。但我认为这应该是你想要的
cta = { "7t6tqrwvnt37"=> { "domain"=>"test.test.com", "api_key"=>"************", "flow_id"=>5, "email"=>"test@test.com", "organization_id"=>1 },
"9mwe71j08a3c"=> { "domain"=>"test.test.com", "api_key"=>"************", "flow_id"=>5, "email"=>"test@test.com", "organization_id"=>1 } }
# Loop over hash and print organization_id value.
cta.each do |key, value|
puts value["organization_id"]
end
输出是散列对象
所以下面的代码给出正确的值
output.each do|k,v|
放置v['organization_id']
end
输出是散列对象
所以下面的代码给出正确的值
output.each do|k,v|
放置v['organization_id']
结束
输出是什么样子的?刚刚编辑了问题以显示输出@simplelime输出是什么样子的?刚刚编辑了问题以显示输出@simplelime我想你我什么都想砸我的头,我对这些哈希很糟糕我可能弄错了,但是如果这个枚举器块没有两个输出,我相信值cta
是一个数组。这就是为什么Michale Yurkovetc的答案同样有效。否?@jvillian我将对此进行测试,如果答案为真,则编辑我的答案。@jvillian这是错的,我的最后一段是正确的。只要为块定义了一个输出,该变量仍然是键
。这意味着值在块中永远不可用,从而使cta[n][key]
无效。很奇怪。在我的控制台中,如果我像RickS最初那样(只使用|cta |
而不使用|键、值|
),并且在每个循环中do放入cta.class.name
,我会得到数组。此外,我还尝试了按照Michael的建议将cta[1]['organization\u id']
放入计算机,似乎效果不错。另外,如果cta
只是散列键,那么OP的cta
打印将不会将散列作为数组的第二个元素,这一点很明显。谢谢你,我尝试了所有方法,结果砸了我的头,我对这些散列非常糟糕,我可能弄错了,但是这个枚举器块没有两个输出,我相信值cta
是一个数组
。这就是为什么Michale Yurkovetc的答案同样有效。否?@jvillian我将对此进行测试,如果答案为真,则编辑我的答案。@jvillian这是错的,我的最后一段是正确的。只要为块定义了一个输出,该变量仍然是键
。这意味着值在块中永远不可用,从而使cta[n][key]
无效。很奇怪。在我的控制台中,如果我像RickS最初那样(只使用|cta |
而不使用|键、值|
),并且在每个循环中do放入cta.class.name
,我会得到数组。此外,我还尝试了按照Michael的建议将cta[1]['organization\u id']
放入计算机,似乎效果不错。另外,如果cta
只是散列键,那么OP的cta
打印将不包括散列作为数组的第二个元素,这一点很明显。