我目前在编写测试时遇到问题,该测试解决了我所拥有的记录的eligibility_settings
。我无法从此哈希中提取出一个特定元素。
具体来说,我想通过在不同的函数中的其他地方进行更改来测试,这会改变特定玩家的最小年龄,所以我真正想要测试的是eligibility_settings.min_age
。但是我在我的测试中遇到了麻烦,将其隔离开来。
我的哈希看起来像这样
{
:name => "player1",
:label => "redTeam_1_1",
:group => "adult",
:teamId => 7,
:eligibility_settings => {
"min_age" => 18,
"player_gender" => "female",
"union_players_only" => true
}
}
然而,当我尝试循环遍历此哈希时,我无法隔离该元素。
我尝试过像
这样的事情team.get_players.first.map do |settings, value|
value.tap do |x, y|
y[3]
end
end
然而,这似乎是我一直在尝试的,而我的方法并没有做得很好。
有人会知道我能用这个做什么吗?
答案 0 :(得分:0)
虽然@SergioTulentsev给出了正确的响应,但将来如果你要循环哈希,下面是迭代键并获取你想要的值的一种方法。
hash = {
:name => "player1",
:label => "redTeam_1_1",
:group => "adult",
:teamId => 7,
:eligibility_settings => {
"min_age" => 18,
"player_gender" => "female",
"union_players_only" => true
}
}
hash.map do |settings, value|
p hash[:eligibility_settings]['min_age'] if settings == :eligibility_settings
end # output 18